Virements P2P
Transaction P2P
La fonctionnalité P2P vous aide à offrir aux utilisateurs (clients actuels ou potentiels) la possibilité de s'envoyer de l'argent mutuellement. Elle permet également de recevoir des virements sur vos cartes sans envoyer vos données à personne et de gagner des commissions en fournissant le service à un large éventail d'utilisateurs.
Le service P2P est un service disponible pour la configuration et l'intégration avec des sites web tiers, des applications mobiles, ainsi que des banques internet et mobiles.
Les utilisateurs ont accès à la liste complète des opérations, envoi/réception de virements, inscription/autorisation dans le service, gestion des cartes sauvegardées.
Une caractéristique importante du service P2P est la possibilité d'effectuer des virements par numéro de téléphone, même si l'utilisateur n'est pas encore enregistré dans le système.
Il existe plusieurs scénarios de mise en œuvre des transactions P2P :
- Les données du porteur de carte sont saisies côté passerelle
- Les données du porteur de carte sont saisies côté boutique en ligne
Scénario de traitement d'opération P2P avec saisie des données de paiement côté passerelle de paiement
- Sur le site du vendeur (par exemple, dans une boutique en ligne) le porteur de carte demande l'exécution d'un virement d'argent P2P.
- Le système de la boutique en ligne enregistre la commande dans la Passerelle de paiement via registerP2P.do. Les paramètres d'enregistrement utilisés incluent le montant du virement, la devise, le numéro de commande dans le système du vendeur et l'URL de retour pour le client.
- La passerelle de paiement en réponse à la demande d'enregistrement retourne un identifiant unique de commande dans le système de paiement et une URL pour rediriger le client vers le formulaire de collecte des données de carte.
- Le système de la boutique en ligne transmet l'adresse URL de redirection reçue à l'Étape 3 au navigateur du client.
- Le navigateur du client ouvre l'adresse URL.
- À l'adresse URL indiquée le navigateur du client obtient le formulaire pour la collecte des données de carte.
- Le client remplit le formulaire et les données sont envoyées au serveur de la passerelle de paiement.
- Le système vérifie l'appartenance de la carte à 3-D Secure (SecureCode).
- La passerelle envoie le lien de redirection vers la page du serveur de contrôle d'accès (ACS) de la banque émettrice dans le navigateur web du client (cette étape est nécessaire pour l'implémentation de 3DS).
- Le navigateur web du client demande le formulaire d'autorisation utilisateur à ACS.
- ACS envoie le formulaire d'autorisation dans le navigateur web du client.
- Le client remplit le formulaire et les données sont envoyées au serveur de la passerelle de paiement.
- ACS traite le formulaire et, indépendamment du résultat, envoie l'adresse URL de redirection des pages de la passerelle de paiement dans le navigateur web du client. Avec cette URL sont envoyés les paramètres chiffrés du résultat d'autorisation.
- Le navigateur web du client demande la page de la passerelle de paiement lors de la transmission des paramètres chiffrés du résultat d'autorisation.
- La passerelle de paiement transfère l'argent.
- Quand l'argent est transféré, la passerelle de paiement envoie l'URL de retour au navigateur web du client (l'URL a été spécifiée lors de l'enregistrement de la commande par la boutique en ligne à l'Étape 2).
- Le navigateur web du client demande les résultats du transfert d'argent à la boutique en ligne.
- Le système de boutique en ligne demande les informations sur le statut de la commande à la passerelle de paiement – getP2PStatus.do.
- La passerelle de paiement retourne le statut de la commande.
- Le système de boutique en ligne montre au client le résultat du paiement.
Scénario de réalisation d'opération P2P avec saisie des données de paiement du côté de la boutique en ligne
- Le porteur de carte (client) interagit avec la boutique en ligne pour créer une commande.
- Le système de boutique en ligne collecte les données de carte de son côté.
- Le système de boutique en ligne enregistre la commande dans la Passerelle de paiement via registerP2P.do. Les paramètres d'enregistrement utilisés incluent le montant du transfert, la devise, le numéro de commande dans le système vendeur et l'URL de retour pour le client.
- La passerelle de paiement en réponse à la demande d'enregistrement retourne l'identifiant unique de commande dans le système de paiement.
-
Optionnel. Si la boutique en ligne travaille avec commission, la boutique en ligne envoie à la passerelle de paiement une demande sur le montant de commission via verifyP2P.do / verifyP2PByBinding.do.
- Optionnel. La passerelle de paiement envoie en réponse le montant de commission.
- La boutique en ligne envoie une demande de transfert de fonds à la Passerelle de paiement via performP2P.do / performP2PByBinding.do.
À cette étape, le fonctionnement de 3DS2 est initié.
- La Passerelle de paiement vérifie sur le serveur 3DS si le client peut s'authentifier en utilisant le protocole 2.0.
- La Passerelle de paiement envoie une réponse à la demande faite à l'Étape 6. La réponse retourne également les paramètres suivants :
-
is3DSVer2- indicateur de possibilité d'authentification 3DSv2 (true/false) -
threeDSServerTransId- identifiant de transaction attribué par le serveur 3DS -
threeDSMethodURLServer- adresse du serveur 3DS pour la collecte de données du navigateur -
threeDSMethodURL- (facultatif) adresse du serveur ACS pour la collecte de données du navigateur -
threeDSMethodDataPacked- (facultatif) données pour la collecte de données du navigateur sur ACS
(Voir aussi la description de la demande). -
- La boutique en ligne appelle
threeDSMethodURLServerdans un iframe séparé en utilisant la méthodePOST, en utilisant la valeur obtenue de la réponse à la demande de transfert de fonds. Cela permet au serveur 3DS de collecter des données sur le navigateur du client. -
Facultatif. Si les paramètres
threeDSMethodURLetthreeDSMethodDataPackedont été obtenus dans la réponse à la demande de transfert de fonds, la boutique en ligne appelle dans un iframe séparé par méthode POSTthreeDSMethodURL.
- Transfert de fonds - étape 2. La boutique en ligne renvoie une demande d'exécution de transfert via performP2P.do / performP2PByBinding.do.
Il est nécessaire de transmettre le paramètrethreeDSServerTransId- identifiant de transaction qui a été créé par le serveur 3DS et retourné à l'Étape 10.
- La Passerelle de paiement envoie une demande d'authentification au serveur 3DS.
- Le serveur 3DS envoie une demande d'authentification (AReq) au serveur ACS.
- Le serveur ACS envoie une réponse à la demande d'authentification (ARes) au serveur 3DS.
- Le serveur 3DS envoie les données reçues à la passerelle de paiement.
-
- Si le client n'a pas besoin de passer l'authentification dans ACS, la passerelle de paiement retourne une réponse à la demande de transfert de fonds. Dans ce cas, le scénario continue avec l'Étape 27.
- Si le client doit passer l'authentification dans ACS, la Passerelle de paiement enverra une réponse à la page de paiement avec des données de redirection vers ACS.
- La page de paiement redirige vers
acsUrlavec le paramètrecreq=packedCReq. - ACS affiche la page d'authentification pour le client (page challenge).
- Le client est authentifié.
- Le serveur ACS vérifie l'authenticité des données d'authentification.
- Un échange de données a lieu entre les serveurs ACS et 3DS et le résultat du traitement est confirmé.
- Le serveur ACS redirige le client vers la page de la boutique.
- La boutique en ligne envoie une demande /p2p/finishThreeDsVer2.do à la passerelle de paiement.
- La Passerelle de paiement envoie à la boutique en ligne une réponse à la demande faite.
- La boutique en ligne envoie getP2PStatus.do au passerelle de paiement, afin de connaître le statut de la commande.
- La passerelle de paiement envoie une réponse à la demande effectuée.
- La boutique en ligne affiche la page de résultat au client.
Transaction AFT
AFT (Account Funding Transaction) – type spécial d'opérations de débit de fonds dans le but de recharger le compte interne du client dans le système du marchand ou du compte bancaire dans le système de la banque (souvent utilisé comme alternative à l'opération d'achat).
Scénario de réalisation de transaction AFT
Le scénario d'opération AFT a les particularités suivantes :
- Lors de l'exécution de la transaction AFT dans la demande d'enregistrement de commande il est nécessaire de transmettre le paramètre
featuresavec la valeurWITHOUT_TO_CARD. - Dans la transaction AFT dans la demande de paiement ou dans la demande de paiement par liaison sont indiquées seulement les données de la carte de débit, c'est-à-dire
fromCard(le bloctoCardest absent, sauf dans le cas de virements transfrontaliers, voir ci-dessous). - En cas de virements transfrontaliers, lors desquels le débit de la carte et le crédit sur le compte de transit sont appelés via la passerelle de paiement, et le crédit est appelé depuis un autre système externe, dans la demande de paiement dans le bloc
toCardil est nécessaire d'indiquer le blocreplacementData, qui contient le numéro de carte et le numéro de compte de transit. Voir la description ici.
Scénario d'opération AFT avec saisie des données de paiement du côté de la passerelle de paiement
- Sur le site du vendeur (par exemple, dans la boutique en ligne) le porteur de carte demande l'exécution du virement monétaire P2P.
- Le système de boutique en ligne enregistre la commande dans la Passerelle de paiement via registerP2P.do avec le paramètre
features=WITHOUT_TO_CARD. Les paramètres d'enregistrement utilisés incluent le montant du virement, la devise, le numéro de commande dans le système du vendeur et l'URL de retour pour le client.
- La Passerelle de paiement en réponse à la demande d'enregistrement retourne un identifiant unique de commande dans le système de paiement et une URL pour rediriger le client vers le formulaire de collecte des données de carte.
- Le système de boutique en ligne transmet l'URL de redirection reçue à l'Étape 3 au navigateur du client.
- Le navigateur du client ouvre l'URL.
- À l'URL indiquée, le navigateur du client obtient le formulaire de collecte des données de carte.
- Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
- Le système vérifie l'appartenance de la carte à 3-D Secure (SecureCode).
- La passerelle envoie le lien de redirection vers la page du serveur de contrôle d'accès (ACS) de la banque émettrice dans le navigateur web du client (cette étape est nécessaire pour implémenter 3DS).
- Le navigateur web du client demande le formulaire d'autorisation utilisateur depuis ACS.
- ACS envoie le formulaire d'autorisation dans le navigateur web du client.
- Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
- ACS traite le formulaire et, indépendamment du résultat, envoie l'URL de redirection des pages de la passerelle de paiement dans le navigateur web du client. Avec cette URL sont envoyés les paramètres chiffrés du résultat d'autorisation.
- Le navigateur web du client demande la page de la passerelle de paiement lors de la transmission des paramètres chiffrés du résultat d'autorisation.
- La Passerelle de paiement transfère l'argent.
- Quand l'argent est transféré, la passerelle de paiement envoie l'URL de retour dans le navigateur web du client (l'URL a été indiquée lors de l'enregistrement de la commande par la boutique en ligne à l'Étape 2).
- Le navigateur web du client demande les résultats du transfert d'argent depuis la boutique en ligne.
- Le système de boutique en ligne demande les informations sur le statut de la commande à la passerelle de paiement – getP2PStatus.do.
- La Passerelle de paiement retourne le statut de la commande.
- Le système de boutique en ligne montre au client le résultat du paiement.
Scénario d'opération AFT avec saisie des données de paiement du côté de la boutique en ligne
- Le porteur de carte (client) interagit avec la boutique en ligne pour créer une commande.
- Le système de la boutique en ligne collecte les données de carte de son côté.
- Le système de la boutique en ligne enregistre la commande dans la Passerelle de paiement via registerP2P.do avec le paramètre
features=WITHOUT_TO_CARD. Les paramètres d'enregistrement utilisés incluent le montant du transfert, la devise, le numéro de commande dans le système du vendeur et l'URL de retour pour le client.
- La Passerelle de paiement en réponse à la demande d'enregistrement retourne un identifiant unique de commande dans le système de paiement.
-
Optionnel. Si la boutique en ligne travaille avec commission, la boutique en ligne envoie à la passerelle de paiement une demande sur le montant de la commission via verifyP2P.do / verifyP2PByBinding.do.
- Optionnel. La Passerelle de paiement envoie en réponse le montant de la commission.
- La boutique en ligne envoie une demande de transfert de fonds à la Passerelle de paiement via performP2P.do / performP2PByBinding.do, en spécifiant les données de la carte de débit dans le bloc
fromCard.
À cette étape, le fonctionnement du 3DS 2.0 est initié.
- La Passerelle de paiement vérifie sur le serveur 3DS si le client peut s'authentifier en utilisant le protocole 2.0.
- La Passerelle de paiement envoie une réponse à la demande faite à l'Étape 6. La réponse retourne également les paramètres suivants :
-
is3DSVer2- flag de possibilité d'authentification 3DSv2 (true/false) -
threeDSServerTransId- identifiant de transaction attribué par le serveur 3DS -
threeDSMethodURLServer- adresse du serveur 3DS pour la collecte des données du navigateur -
threeDSMethodURL- (optionnel) adresse du serveur ACS pour la collecte des données du navigateur -
threeDSMethodDataPacked- (optionnel) données pour la collecte des données du navigateur sur ACS
(Voir aussi la description de la demande). -
- La boutique en ligne appelle
threeDSMethodURLServerdans un iframe séparé en utilisant la méthodePOST, en utilisant la valeur obtenue de la réponse à la demande de transfert de fonds. Cela permet au serveur 3DS de collecter les données sur le navigateur du client. -
Optionnel. Si dans la réponse à la demande de transfert de fonds les paramètres
threeDSMethodURLetthreeDSMethodDataPackedont été obtenus, la boutique en ligne appelle dans un iframe séparé par méthode POSTthreeDSMethodURL.
- Transfert de fonds - étape 2. La boutique en ligne renvoie à nouveau une demande d'exécution de transfert via performP2P.do / performP2PByBinding.do.
Il est nécessaire de transmettre le paramètrethreeDSServerTransId- identifiant de transaction qui a été créé par le serveur 3DS et retourné à l'Étape 10.
- La Passerelle de paiement envoie une demande d'authentification au serveur 3DS.
- Le serveur 3DS envoie une demande d'authentification (AReq) au serveur ACS.
- Le serveur ACS envoie une réponse à la demande d'authentification (ARes) au serveur 3DS.
- Le serveur 3DS envoie les données reçues à la passerelle de paiement.
-
- Si le client n'a pas besoin de passer l'authentification dans ACS, la passerelle de paiement retourne une réponse à la demande de transfert de fonds. Dans ce cas, le scénario se poursuit avec l'Étape 27.
- Si le client doit passer l'authentification dans ACS, la passerelle de paiement enverra une réponse à la page de paiement avec les données de redirection vers ACS.
- La page de paiement redirige vers
acsUrlavec le paramètrecreq=packedCReq. - ACS affiche une page d'authentification pour le client (page challenge).
- Le client est authentifié.
- Le serveur ACS vérifie l'authenticité des données d'authentification.
- Il y a un échange de données entre les serveurs ACS et 3DS et le résultat du traitement est confirmé.
- Le serveur ACS redirige le client vers la page du magasin.
- Le magasin en ligne envoie une demande /p2p/finishThreeDsVer2.do à la passerelle de paiement.
- La passerelle de paiement envoie au magasin en ligne une réponse à la demande effectuée.
- Le magasin en ligne envoie getP2PStatus.do à la passerelle de paiement pour connaître le statut de la commande.
- La passerelle de paiement envoie une réponse à la demande effectuée.
- Le magasin en ligne affiche la page de résultat au client.
Transaction OCT
OCT (Original Credit Transaction) - type particulier de transactions pour créditer des fonds au destinataire en temps réel.
- Dans une transaction OCT, la demande de paiement spécifie uniquement les données de la carte de crédit, c'est-à-dire
toCard. - Lors de l'exécution d'une transaction OCT dans la demande d'enregistrement de commande, il est nécessaire de passer le paramètre
featuresavec la valeurWITHOUT_FROM_CARD.
Scénario de réalisation de transaction OCT
- Le porteur de carte (client) interagit avec le magasin en ligne pour créer une commande.
- Le système du magasin en ligne enregistre la commande dans la passerelle de paiement via registerP2P.do. Les paramètres d'enregistrement utilisés incluent le montant du transfert, la devise, le numéro de commande dans le système du vendeur et l'URL de retour pour le client.
- La passerelle de paiement en réponse à la demande d'enregistrement retourne un identifiant unique de commande dans le système de paiement et une URL pour rediriger le client vers le formulaire de collecte des données de carte.
- Le système du magasin en ligne transmet l'adresse URL de redirection, reçue à l'Étape 3, au navigateur du client.
- Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
- La passerelle de paiement effectue le transfert de fonds via performP2P.do.
- Quand l'argent est transféré, la passerelle de paiement envoie l'adresse URL de retour au navigateur web du client (l'adresse URL était spécifiée lors de l'enregistrement de la commande par le magasin en ligne à l'Étape 2).
- Le navigateur web du client demande les résultats du transfert d'argent au magasin en ligne.
- Le système du magasin en ligne demande des informations sur le statut de la commande à la passerelle de paiement – getP2PStatus.do.
- La passerelle de paiement retourne le statut de la commande.
- Le système du magasin en ligne montre au client le résultat du paiement.
Appels API
Les demandes pour les transactions P2P doivent être signées. Les informations sur les signatures de demandes sont disponibles dans notre Guide API.
Enregistrement de commande P2P
Pour effectuer une commande de transfert d'argent de carte à carte, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Obligatoire | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Obligatoire | returnUrl |
String [1..512] | Adresse vers laquelle l'utilisateur doit être redirigé en cas de paiement réussi. L'adresse doit être spécifiée complètement, y compris le protocole utilisé (par exemple, https://mybestmerchantreturnurl.com au lieu de mybestmerchantreturnurl.com). Sinon, l'utilisateur sera redirigé vers une adresse du type suivant : https://dev.bpcbt.com/payment/<merchant_address>. |
| Facultatif | failUrl |
String [1..512] | Adresse vers laquelle il faut rediriger l'utilisateur en cas de paiement échoué. L'adresse doit être spécifiée entièrement, y compris le protocole utilisé (par exemple, https://mybestmerchantreturnurl.com au lieu de mybestmerchantreturnurl.com). Sinon, l'utilisateur sera redirigé vers une adresse du type suivant : https://dev.bpcbt.com/payment/<merchant_address>. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Facultatif | clientId |
String [0..255] | Numéro du client (ID) dans le système du marchand — jusqu'à 255 caractères. Utilisé pour la mise en œuvre de la fonctionnalité de liaisons. Peut être retourné dans la réponse, si le marchand est autorisé à créer des liaisons. L'indication de ce paramètre lors du traitement des paiements par liaison est obligatoire. Dans le cas contraire, le paiement sera impossible. |
| Facultatif | merchantLogin |
String [1..255] | Pour enregistrer une commande au nom d'un autre marchand, spécifiez son login (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de consulter les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Facultatif | dynamicCallbackUrl |
String [1..512] | Paramètre pour transmettre l'adresse dynamique pour recevoir les notifications callback "de paiement" pour la commande, activées pour le marchand (autorisation réussie, débit réussi, remboursement, annulation, rejet du paiement par timeout, rejet du paiement card present). Les notifications callback "non liées au paiement" (activation/désactivation de liaison, création de liaison), seront envoyées à l'adresse callback statique. |
| Facultatif | sessionTimeoutSecs |
Integer [1..9] | Durée de vie de la commande en secondes. Si le paramètre n'est pas défini, la valeur spécifiée dans les paramètres du marchand sera utilisée, ou le temps par défaut (1200 secondes = 20 minutes). Si le paramètre expirationDate est présent dans la requête, alors la valeur du paramètre sessionTimeoutSecs n'est pas prise en compte. |
| Facultatif | sessionExpiredDate |
String | Date et heure d'expiration de la commande. Format : yyyy-MM-ddTHH:mm:ss.Si ce paramètre n'est pas transmis dans la requête, alors le paramètre sessionTimeoutSecs est utilisé pour déterminer le temps d'expiration de la commande. |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Facultatif | bindingId |
String [1..255] | Identifiant d'une liaison déjà existante (identifiant de carte tokenisée par la passerelle). Il ne peut être utilisé que si le marchand a l'autorisation de travailler avec les liaisons. Si ce paramètre est transmis dans cette requête, cela signifie que :
|
| Facultatif | creditBindingId |
String [0..255] | Identifiant de liaison de carte pour le crédit. Utilisé lors des transferts de carte à carte, lorsque la carte du destinataire est connue à l'avance. Ce paramètre doit d'abord être transmis dans la demande d'enregistrement de paiement (registerP2P.do - ici aussi doit être transmis le paramètre clientId), puis dans la demande de transfert de fonds par liaison (performP2PByBinding.do - la valeur du paramètre creditBindingId, transmise dans registerP2P.do, doit être transmise dans le paramètre bindingId dans le bloc toCard). |
| Conditionnel | transactionTypeIndicator |
String | Utilisé dans les types de transactions unidirectionnelles. Les valeurs possibles sont :
|
| Conditionnel | features |
Object | Conteneur pour le paramètre feature, obligatoire pour les opérations unidirectionnelles.Si une opération AFT (transfert de carte vers compte) est exécutée - dans le paramètre feature doit être transmis WITHOUT_TO_CARD. De plus, si après cette opération AFT une opération OCT est prévue, il est nécessaire de transmettre la valeur OCT_EXPECTED. Exemple : "features" : { "feature" : ["WITHOUT_TO_CARD"] } Si une opération OCT (transfert de compte vers carte) est exécutée - dans le paramètre feature doit être transmis WITHOUT_FROM_CARD. Exemple : "features" : { "feature" : ["WITHOUT_FROM_CARD"] } |
| Facultatif | params |
Object | Champs d'informations supplémentaires pour le stockage ultérieur, transmis sous la forme suivante : "params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].Ces champs peuvent être transmis au processing de la banque pour l'affichage ultérieur dans les registres de la banque. Par défaut sont transmis orderNumber (numéro de commande) et orderDescription (description de commande).orderDescription ne doit pas dépasser 99 caractères, n'utilisez pas les caractères suivants : %, +, retour chariot \r et saut de ligne
|
| ). Pour activer cette fonctionnalité, contactez la banque. |
|||
| Facultatif | feeInput |
String | Taille de la commission en unités minimales de la devise. La fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Si l'autorisation correspondante est définie pour le marchand, et qu'il effectue des opérations AFT, la commission du marchand arrive dans la demande d'enregistrement et est envoyée dans le message au processing.
|
| Facultatif | shippingPayerData |
Object | Objet contenant les données de livraison au client. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | preOrderPayerData |
Object | Objet contenant les données de pré-commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | orderPayerData |
Object | Objet contenant les données sur le payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | billingAndShippingAddressMatchIndicator |
String [1] | Indicateur de correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Valeurs possibles :
|
| Conditionnel | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour passer la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur côté Passerelle de paiement. Doit avoir été inclus soit dans la requête registerP2P.do, soit dans la requête performP2P.do. Voir paramètres imbriqués. |
| Conditionnel | billingRecipientData |
Object | Bloc de données sur le destinataire. Obligatoire si la fonction est activée pour le vendeur côté Passerelle de paiement. Doit avoir été inclus soit dans la requête registerP2P.do, soit dans la requête performP2P.do. Voir paramètres imbriqués. |
| Facultatif | debitMdOrder |
String [1..36] | Numéro unique de commande pour laquelle le transfert AFT a été exécuté dans iPay. Ce paramètre est utilisé pour les opérations OCT lors des transferts P2P (AFT+OCT). |
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
Ci-dessous sont présentés les paramètres du bloc billingRecipientData (données sur le destinataire).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | recipientCity |
String [0..40] | Code de la ville du destinataire. Format ISO 3166-1 alpha-3. Peut contenir uniquement des lettres de l'alphabet latin. |
| Condition | recipientCountry |
String [0..50] | Code du pays du destinataire. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO du pays à deux/trois lettres. Obligatoire pour Mastercard. |
| Facultatif | recipientAddressLine1 |
String [0..50] | Adresse du destinataire. Ne peut contenir que des lettres de l'alphabet latin. |
| Facultatif | recipientPostalCode |
String [0..9] | Code postal du destinataire. |
| Facultatif | recipientState |
String [0..50] | Code de l'état du destinataire. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Condition | recipientAccount |
String [0..32] | Numéro de compte du bénéficiaire. Obligatoire pour Mastercard. |
| Condition | recipientAccountNumberType |
Integer [1..2] | Type de compte du bénéficiaire. Valeurs possibles :
Obligatoire pour Mastercard. |
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | formUrl |
String [1..512] | URL du formulaire de paiement vers lequel l'acheteur sera redirigé. L'URL n'est pas retournée si l'enregistrement de la commande a échoué en raison d'une erreur spécifiée dans errorCode. |
| Facultatif | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
Exemples
Exemple de requête
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
"username":"test_user",
"password":"test_user_password",
"amount" : 50000,
"currency" : "978",
"returnUrl" : "https://mybestmerchantreturnurl.com",
"orderNumber": "1"
}'Exemple de requête d'opération OCT
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
"username":"test_user",
"password":"test_user_password",
"amount" : 50000,
"currency" : "978",
"returnUrl" : "https://mybestmerchantreturnurl.com",
"orderNumber": "12",
"clientId": "122313",
"creditBindingId": "99ef0cee-34fe-7312-ad7c-78bc00b3236a",
"transactionTypeIndicator": "A",
"features":{
"feature":["FEATURE_1", "FEATURE_2", .. "FEATURE_N"]
}
}'Exemple de requête avec indication des données de l'expéditeur et du destinataire
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "test_user",
"password": "test_user_password",
"amount" : 1500,
"currency" : "978",
"returnUrl" : "https://mybestmerchantreturnurl.com",
"failUrl" : "https://failUrl.com",
"orderNumber": "01rthtbkuysgr",
"email" : "test@test.com",
"billingPayerData": {
"payerAccount": "DE89370400440532013000",
"payerLastName": "CHINA",
"payerFirstName": "Mieville",
"payerMiddleName": "Tom",
"payerCombinedName": "CHINA Mieville",
"payerIdType": "IDTP1",
"payerIdNumber": "792209292",
"billingCity": "BUD",
"billingCountry": "348",
"billingAddressLine1": "Terez krt",
"billingAddressLine2": "Terez krt",
"billingAddressLine3": "Terez krt",
"billingPostalCode": "1067",
"billingState": "VI",
"payerBirthday": "19900101"
},
"billingRecipientData": {
"recipientAccount": "DE89370400440532013000",
"recipientLastName": "CHINA",
"recipientFirstName": "Mieville",
"recipientMiddleName": "Tom",
"recipientCombinedName": "CHINA Mieville",
"recipientIdType": "IDTP1",
"recipientIdNumber": "792209292",
"recipientCity": "BUD",
"recipientCountry": "348",
"recipientAddressLine1": "Terez krt",
"recipientPostalCode": "1067",
"recipientState": "VI",
"recipientBirthday": "19900101"
}
}'Exemple de réponse
{
"errorCode": 0,
"errorMessage": "Successful",
"orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
"formUrl": "https://dev.bpcbt.com/payment/merchants/ecom/payment.html?mdOrder=0a4eaae8-653a-71a9-8259-46fc00a8ea58&language=en",
"orderNumber": "2009"
}Montant de la commission
Pour obtenir le montant de la commission pour un virement bancaire, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2P.do.
La structure de la requête prévoit la présence du bloc fromCard pour transmettre les attributs de la carte pour le débit et du bloc toCard pour transmettre les attributs de la carte pour le crédit.
En fonction des processus métier, lors de l'exécution d'un virement de carte à carte, les variantes suivantes peuvent être possibles :
- Les données de la carte de débit et les données de la carte de crédit des fonds sont transmises à la passerelle de paiement. Dans ce cas, les deux blocs de paramètres doivent être présents dans la requête —
fromCardettoCard. - Si le crédit sur la carte est effectué par un système tiers, alors seules les données de la carte de débit sont transmises à la passerelle de paiement. Dans ce cas, un seul bloc de paramètres doit être rempli –
fromCard - Si le débit de la carte est effectué par un système tiers, alors seules les données de la carte de crédit sont transmises à la passerelle de paiement. Dans ce cas, un seul bloc de paramètres doit être rempli –
toCard
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Optionnel | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Optionnel | amount |
String [0..12] | Montant du virement en unités monétaires minimales (par exemple, en centimes). Ce paramètre est transmis si le payeur décide de modifier le montant du virement lors de l'exécution du virement monétaire. |
| Optionnel | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Optionnel | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour réussir la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur côté Passerelle de paiement. Voir paramètres imbriqués. |
| Optionnel | billingRecipientData |
Object | Bloc de données sur le destinataire. Obligatoire si la fonction est activée pour le vendeur côté Passerelle de paiement. Voir paramètres imbriqués. |
| Obligatoire | fromCard |
Object | Bloc avec les attributs de la carte de débit. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec attributs de la carte de crédit. Voir paramètres imbriqués. |
Le bloc fromCard inclut les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | pan |
String [1..19] | Numéro de carte de débit des fonds monétaires. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Optionnel | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de débit. Obligatoire si le paiement n'est pas effectué par liaison et/ou si le vendeur n'a pas l'autorisation de paiement sans CVC. Seuls les chiffres sont autorisés. |
| Obligatoire | expirationYear |
Integer [4] | Année d'expiration de la carte de débit. Les valeurs acceptées vont de 2000 à 2200. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Obligatoire | expirationMonth |
Integer [2] | Mois d'expiration de la carte de débit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Obligatoire | cardholderName |
String [1..26] | Nom du porteur de la carte de débit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
Le bloc toCard inclut les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | pan |
String [1..19] | Numéro de carte pour le crédit de fonds. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Optionnel | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de crédit. Seuls les chiffres sont autorisés. |
| Optionnel | expirationYear |
Integer [4] | Année d'expiration de la carte de crédit. Les valeurs acceptées vont de 2000 à 2200. |
| Optionnel | expirationMonth |
Integer [2] | Mois d'expiration de la carte de crédit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. |
| Optionnel | cardholderName |
String [1..26] | Nom du porteur de la carte de crédit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
Ci-dessous sont présentés les paramètres du bloc billingRecipientData (données sur le destinataire).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | recipientCity |
String [0..40] | Code de la ville du destinataire. Format ISO 3166-1 alpha-3. Peut contenir uniquement des lettres de l'alphabet latin. |
| Condition | recipientCountry |
String [0..50] | Code du pays du destinataire. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO du pays à deux/trois lettres. Obligatoire pour Mastercard. |
| Facultatif | recipientAddressLine1 |
String [0..50] | Adresse du destinataire. Ne peut contenir que des lettres de l'alphabet latin. |
| Facultatif | recipientPostalCode |
String [0..9] | Code postal du destinataire. |
| Facultatif | recipientState |
String [0..50] | Code de l'état du destinataire. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Condition | recipientAccount |
String [0..32] | Numéro de compte du bénéficiaire. Obligatoire pour Mastercard. |
| Condition | recipientAccountNumberType |
Integer [1..2] | Type de compte du bénéficiaire. Valeurs possibles :
Obligatoire pour Mastercard. |
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
Le bloc feeDescriptionList inclut les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Optionnel | feeAmount |
Integer [1..12] | Montant de la commission. |
| Optionnel | feeCurrency |
String [3] | Code de devise de paiement ISO 4217. |
| Optionnel | feeDescription |
String [1..512] | Description de la commission. |
Exemples
Exemple de requête
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
"username":"test_user",
"password":"test_user_password",
"orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
"fromCard": {
"cardholderName": "TEST CARDHOLDER",
"cvc": "123",
"expirationMonth": 12,
"expirationYear": 2030,
"pan": "5000001111111115"
},
"toCard": {
"pan": "4000001111111118"
},
"amount" : 50000
}'Exemple de réponse
{
"errorCode": 0,
"errorMessage": "Successful",
"feeDescriptionList: [ {
"feeAmount": 500,
"feeCurrency": "978",
"feeDescription": "Acquirer fee"
} ]
}Commission pour le virement P2P par liaison
Pour obtenir le montant de la commission lors du virement de fonds par liaison, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2PByBinding.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de la requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Obligatoire | fromCard |
Object | Bloc avec les attributs de la carte de débit. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec les attributs de la carte de crédit. Voir paramètres imbriqués. |
Le bloc fromCard comprend les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | bindingId |
String [1..255] | Identifiant de la liaison créée lors du paiement de la commande ou utilisée pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Obligatoire | pan |
String [1..19] | Numéro de carte de débit des fonds monétaires. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Facultatif | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de débit. Obligatoire si le paiement n'est pas effectué par liaison et/ou si le vendeur n'a pas l'autorisation de paiement sans CVC. Seuls les chiffres sont autorisés. |
| Obligatoire | expirationYear |
Integer [4] | Année d'expiration de la carte de débit. Les valeurs acceptées vont de 2000 à 2200. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Obligatoire | expirationMonth |
Integer [2] | Mois d'expiration de la carte de débit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Obligatoire | cardholderName |
String [1..26] | Nom du porteur de la carte de débit. |
| Facultatif | seToken |
String [1..8192] | Données de carte chiffrées. Obligatoire si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken : timestamp, UUID, bindingId, MDORDER. Plus de détails sur la génération seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
Le bloc toCard comprend les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | bindingId |
String [1..255] | Identifiant de la liaison créée lors du paiement de la commande ou utilisée pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Obligatoire | pan |
String [1..19] | Numéro de carte pour le crédit de fonds. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Facultatif | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de crédit. Seuls les chiffres sont autorisés. |
| Facultatif | expirationYear |
Integer [4] | Année d'expiration de la carte de crédit. Les valeurs acceptées vont de 2000 à 2200. |
| Facultatif | expirationMonth |
Integer [2] | Mois d'expiration de la carte de crédit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de crédit. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | feeAmount |
Integer [1..12] | Montant de la commission. |
| Facultatif | feeCurrency |
String [3] | Code de devise de paiement ISO 4217. |
| Facultatif | feeDescription |
String [1..512] | Description de la commission. |
Exemples
Exemple de requête
curl --location --request POST 'https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2PByBinding.do' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "test_user",
"password": "test_user_password",
"orderId": "fa71bf70-7c81-484e-a6fc-7db7e4283b2a",
"bindingId": "4d792471-cee0-742c-922d-a265072e6148",
"fromCard": {
"seToken": "ofVx1r3aIJ3Mlx3nkfeOIJgFOnwfsgFK+V6Yzm+KxJgsq19l74GChhX0We/LEFq78Rhn9uFAEZGdeyDhnIc/KfuvObf0EzoDA65Uj1Z8FjwWyjnEwTBHZL4KmdFBCSk8jLxHt70mXwyjiHYyCVH1fT/UVOnsrkZVGrqmEG4MTi5dX9Znzf24DwRg4iezvdT8vf0dUW5lJdvY1tgOsOnBulwy6kH/YbHVsnR6yxO6d6IsdnT5f8PxaB+7ZyUqgrd6VA88FGJKJgdoxk4721pqKSG5dYroLJG96s23EDJ2Hpi4e9wU2rP7E6dlFw+qzATqX/eaJbaQ9eakkdMWnkj7aQ=="
},
"toCard": {
"cardholderName": "IVAN IVANOV",
"cvc": "123",
"expirationMonth": 12,
"expirationYear": 2024,
"pan": "5555555555555599"
},
"amount": 1000,
"currency": "978",
"clientId": "123",
"fromCard": {
"bindingId": "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
},
"toCard": {
"pan": "4000001111111118"
}
}'Exemple de réponse
{
"errorCode" : 0,
"errorMessage" : "Successful",
"feeDescriptionList" : [ {
"feeAmount" : 10,
"feeCurrency" : "978",
"feeDescription" : "Acquirer fee"
} ]
}Virement P2P
Pour effectuer un virement d'argent de carte à carte, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
La structure de la requête performP2P.do prévoit la présence du bloc fromCard pour transmettre les attributs de la carte pour le débit et du bloc toCard pour transmettre les attributs de la carte pour le crédit. Selon les processus métier définis pour la banque et le magasin, lors de l'exécution du virement de carte à carte, les variantes suivantes peuvent être possibles.
- Le magasin transmet à la passerelle les données de la carte de débit et les données de la carte de crédit des fonds monétaires. Dans ce cas, les deux blocs de paramètres doivent être présents dans la requête —
fromCardettoCard. - Si le crédit sur la carte est effectué par un système tiers (opération AFT), alors le magasin transmet à la passerelle uniquement les données de la carte de débit. Dans ce cas, il ne doit y avoir qu'un seul bloc de paramètres –
fromCard - Si le débit de la carte est effectué par un système tiers (opération OCT), alors le magasin transmet à la passerelle uniquement les données de la carte de crédit. Dans ce cas, il ne doit y avoir qu'un seul bloc de paramètres –
toCard
Paramètres de la requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | email |
String [1..40] | Adresse électronique du payeur. |
| Facultatif | amount |
String [0..12] | Montant du virement en unités monétaires minimales (par exemple, en centimes). Ce paramètre est transmis si le payeur décide de modifier le montant du virement lors de l'exécution du virement monétaire. |
| Facultatif | type |
String | En cas de virement monétaire avec des données pour une seule carte, il est nécessaire de transmettre dans ce paramètre la valeur correspondante :WITHOUT_FROM_CARD - sans indication de la carte pour le débit des fonds.WITHOUT_TO_CARD - sans indication de la carte pour le crédit. S'il s'agit d'un virement monétaire ordinaire de carte à carte, alors ici il est nécessaire de transmettre la valeur suivante : STANDARD. |
| Facultatif | amountInput |
Integer [0..12] | Montant du virement dans les unités monétaires minimales (par exemple, en centimes). Si un montant est spécifié dans ce paramètre, le virement sera effectué pour ce montant (indépendamment du montant transmis dans la demande de traitement de commande). |
| Facultatif | captcha |
String | CAPTCHA (texte destiné à distinguer la saisie humaine de la saisie machine) |
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| Facultatif | threeDSSDKEncData |
String | Données chiffrées sur l'appareil. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKReferenceNumber |
String | Identifiant officiel 3DS2 SDK |
| Facultatif | threeDSSDKEphemPubKey |
String | Partie publique de la clé éphémère. Requis pour établir une session avec ACS. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKAppId |
String | Identifiant unique du SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKTransId |
String | Identifiant unique de la transaction dans le SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
| Condition | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Condition | threeDSVer2MdOrder |
String [1..36] | Numéro de commande qui a été enregistré dans la première partie de la demande dans le cadre de l'opération 3DS2. Obligatoire pour l'authentification 3DS. Si ce paramètre est présent dans la demande, alors mdOrder est utilisé, qui est transmis dans le présent paramètre. Dans ce cas, l'enregistrement de la commande n'a pas lieu, mais le paiement de la commande se produit immédiatement.Ce paramètre est transmis uniquement lors de l'utilisation des méthodes de paiement instantané, c'est-à-dire, lorsque la commande est enregistrée et payée dans le cadre d'une seule demande. |
| Facultatif | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Condition | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Condition | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération l'initiateur (Client ou Marchand) va exécuter. Obligatoire pour les opérations AFT et le virement utilisant la liaison dans le bloc fromCard ou la liaison propre du marchand.Pour les opérations OCT, ce paramètre n'est pas transmis. Valeurs possibles |
| Obligatoire | params |
Object | Champs d'informations supplémentaires pour le stockage ultérieur, transmis sous la forme suivante : {"param":"value","param2":"value2"}.Ces champs peuvent être transmis au processing de la banque pour affichage ultérieur dans les registres de la banque. Par défaut sont transmis orderNumber (numéro de commande) et orderDescription (description de la commande).orderDescription ne doit pas dépasser 99 caractères, n'utilisez pas les caractères suivants : %, +, retour chariot \r et saut de ligne
|
| ). Pour activer cette fonctionnalité, contactez la banque. Dans l'objet params de la demande de transfert d'argent de carte à carte peuvent être transmises les données suivantes du client (le format des valeurs dépend de la méthode de traitement des données utilisée) :
params les informations suivantes (le format des valeurs est déterminé par la méthode de traitement des données utilisée) :
Si nécessaire, contactez l'équipe de support pour spécifier les valeurs permanentes des paramètres payer* et recipientName, afin de ne pas les transmettre à chaque fois dans toutes les demandes. |
|||
| Facultatif | shippingPayerData |
Object | Objet contenant les données de livraison au client. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | preOrderPayerData |
Object | Objet contenant les données de précommande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | orderPayerData |
Object | Objet contenant les données sur le payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Condition | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour passer la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur du côté de la Passerelle de Paiement. Devait être inclus soit dans la requête registerP2P.do, soit dans la requête performP2P.do. Voir paramètres imbriqués. |
| Condition | billingRecipientData |
Object | Bloc de données sur le destinataire. Obligatoire si la fonction est activée pour le vendeur du côté de la Passerelle de Paiement. Devait être inclus soit dans la requête registerP2P.do, soit dans la requête performP2P.do. Voir paramètres imbriqués. |
| Obligatoire | fromCard |
Object | Bloc avec les attributs de la carte de débit. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec les attributs de la carte de crédit. Voir paramètres imbriqués. |
Valeurs possibles du paramètre tii :
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Données de carte sauvegardées après la transaction | Commentaire |
|---|---|---|---|---|---|---|
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisies par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non programmé (CIT) | Subséquente | Acheteur | Le client sélectionne la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
Ci-dessous sont présentés les paramètres du bloc billingRecipientData (données sur le destinataire).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | recipientCity |
String [0..40] | Code de la ville du destinataire. Format ISO 3166-1 alpha-3. Peut contenir uniquement des lettres de l'alphabet latin. |
| Condition | recipientCountry |
String [0..50] | Code du pays du destinataire. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO du pays à deux/trois lettres. Obligatoire pour Mastercard. |
| Facultatif | recipientAddressLine1 |
String [0..50] | Adresse du destinataire. Ne peut contenir que des lettres de l'alphabet latin. |
| Facultatif | recipientPostalCode |
String [0..9] | Code postal du destinataire. |
| Facultatif | recipientState |
String [0..50] | Code de l'état du destinataire. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Condition | recipientAccount |
String [0..32] | Numéro de compte du bénéficiaire. Obligatoire pour Mastercard. |
| Condition | recipientAccountNumberType |
Integer [1..2] | Type de compte du bénéficiaire. Valeurs possibles :
Obligatoire pour Mastercard. |
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Le bloc fromCard comprend les paramètres suivants :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | pan |
String [1..19] | Numéro de carte de débit des fonds monétaires. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de débit. Obligatoire si le paiement n'est pas effectué par liaison et/ou si le vendeur n'a pas l'autorisation de paiement sans CVC. Seuls les chiffres sont autorisés. |
| Condition | expirationYear |
Integer [4] | Année d'expiration de la carte de débit. Les valeurs acceptées vont de 2000 à 2200. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | expirationMonth |
Integer [2] | Mois d'expiration de la carte de débit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de débit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | threeDsAuthResult |
Object | Bloc avec les données sur le résultat de l'authentification 3 DS utilisant MPI/3DS Server du marchand. Obligatoire pour les transactions de transfert de carte à carte et AFT utilisant MPI/3DS Server du marchand. Voir paramètres imbriqués. |
Lors des paiements utilisant des tokens (APPLE, SAMSUNG, GOOGLE) au lieu des données de carte dans le bloc fromCard est transmis :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | vendor |
String | Paramètre utilisé lors du paiement par tokens. En tant que valeur, le nom du fournisseur de service de paiement est transmis : APPLE, GOOGLE, SAMSUNG.Ce paramètre doit être transmis simultanément avec le paramètre paymentToken (valeur du token).Ce paramètre ne peut pas être présent simultanément avec les paramètres : pan, cvc, expiry, bindingId, seToken. |
| Condition | paymentToken |
String [1..8192] | Valeur du token du fournisseur, spécifié dans le paramètre vendor (APPLE, GOOGLE, SAMSUNG). Si vendor est spécifié, le paramètre est obligatoire à transmettre.Ce paramètre ne peut pas être présent simultanément avec les paramètres : pan, cvc, expiry, bindingId, seToken. |
| Facultatif | decryptedToken |
Boolean | Jeton déchiffré pour les paiements via les fournisseurs (ApplePay, GooglePay, etc.). Valeurs possibles :
Si ce paramètre n'est pas transmis, par défaut il sera considéré que decryptedToken = false est transmis. |
| Facultatif | protocolVersion |
String | Version du protocole définie par Google pour le jeton de paiement : ECv1 (par défaut) ou ECv2
|
Ci-dessous sont énumérés les paramètres du bloc threeDsAuthResult (données sur le résultat de l'authentification 3 DS).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | cavv |
String [0..200] | Valeur de vérification d'authentification du titulaire de la carte. Spécifiée uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| Facultatif | xid |
String [1..80] | Identifiant commercial électronique de la transaction. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| Facultatif | eci |
Integer [1..4] | Indicateur de commerce électronique. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. Ci-dessous se trouve le décodage des codes ECI.
|
| Conditionnel | threeDsType |
String | Type d'authentification 3DS. Ce paramètre est obligatoire pour le paiement via votre serveur 3DS avec 3DS 2. Pour les paiements SSL, ce paramètre est facultatif et est déterminé en fonction de la valeur ECI. Valeurs autorisées :
|
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
Le bloc toCard comprend les paramètres suivants :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | pan |
String [1..19] | Numéro de carte pour le crédit de fonds. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Facultatif | expirationYear |
Integer [4] | Année d'expiration de la carte de crédit. Les valeurs acceptées vont de 2000 à 2200. |
| Facultatif | expirationMonth |
Integer [2] | Mois d'expiration de la carte de crédit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de crédit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des paramètres suivants : |
Dans certains cas, la requête pour une transaction AFT comprend un bloc toCard avec un bloc imbriqué replacementData contenant les données pour remplacer la destination du transfert dans les transactions AFT. Il contient le numéro de carte et le numéro de compte de transit du destinataire. Certains systèmes de paiement exigent la transmission de ces données dans les transactions AFT, c'est-à-dire que ces données sont utilisées pour l'authentification sur ACS pendant l'autorisation 3DS.
Pour utiliser ce bloc, le marchand doit avoir une autorisation spéciale (vérifiez auprès de l'équipe de support).
Ci-dessous sont listés les paramètres du bloc replacementData (données pour remplacer la destination dans les transactions AFT) :
| Required | Name | Type | Description |
|---|---|---|---|
| Facultatif | card |
String [1..19] | Numéro de carte du destinataire, s'il est connu au moment du transfert. |
| Facultatif | account |
String [1..30] | Numéro de compte de transit (tout numéro transmis par la banque). |
Lors de l'authentification par le protocole 3DS2, les paramètres suivants sont également transmis :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Facultatif | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | info |
String | Résultat de la tentative de transfert de fonds. Valeur en cas de transfert réussi : "Votre paiement est traité, redirection en cours..." Valeur en cas d'erreur : "Redirection en cours..." |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | termUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour rediriger le client après interaction avec ACS pour finaliser le paiement. |
| Facultatif | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Conditionnel | mcTransactionReference |
String [1..19] | Identifiant de la transaction AFT par carte Mastercard. Applicable (et obligatoire) uniquement pour Mastercard. |
| Conditionnel | statusResponse |
Object | Paramètres du statut de réponse. Ce bloc n'est retourné que si vous avez le paramètre correspondant activé. Pour activer cette fonctionnalité, contactez le support technique. Voir paramètres imbriqués. |
Lors de l'authentification par le protocole 3DS2 en réponse à la première demande, les paramètres suivants arrivent :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | is3DSVer2 |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient de 3DS2. |
| Obligatoire | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSMethodUrl |
String [1..512] | URL du serveur ACS pour la collecte des données du navigateur. |
| Obligatoire | threeDSMethodUrlServer |
String [1..512] | URL du serveur 3DS pour collecter les données du navigateur qui seront incluses dans AReq (Authentication Request) du serveur 3DS vers le serveur ACS. |
| Facultatif | threeDSMethodDataPacked |
String [1..1024] | Données CReq (Challenge Response) en encodage Base-64 pour l'envoi au serveur ACS. |
| Facultatif | threeDSMethodURLServerDirect |
String [1..512] | Adresse URL 3dsmethod.do pour l'exécution de la méthode 3DS sur le serveur 3DS via la passerelle de paiement (en présence de l'autorisation correspondante au niveau du vendeur). |
Ci-dessous sont présentés les paramètres qui doivent être présents dans la réponse, après une demande répétée de paiement et la nécessité de rediriger le client vers ACS lors de l'authentification par le protocole 3DS2 :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Conditionnel | packedCReq |
String | Données challenge request empaquetées. Obligatoire, si une redirection vers ACS est nécessaire. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. |
Paramètres du bloc statusResponse :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la première transaction (par exemple, un achat). Lors de l'exécution d'une opération inverse (remboursement, rétrofacturation, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
Pour finaliser la transaction, utilisez la méthode /p2p/finishThreeDsVer2.do.
Exemples
Exemple de première demande en cas d'authentification par le protocole 3DS2
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
"username":"test_user",
"password":"test_user_password",
"orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
"amount" : "50000",
"fromCard": {
"vendor": "APPLE",
"paymentToken": "eyJkZXZpY2VNYW51ZmFjdHVyZXJJZGVudGlmaWVyIjoiMDUwMTEwMDMwMjczIiwiY3VycmVuY3lDb2RlIjoiOTc4IiwiYXBwbGljYXRpb25FeHBpcmF0aW9uRGF0ZSI6IjI3MDEzMSIsInBheW1lbnREYXRhIjp7Im9ubGluZVBheW1lbnRDcnlwdG9ncmFtIjoiQUc5WW5Pak1YOUJXQUFSaElJOFBBb0FCRkE9PSJ9LCJwYXltZW50RGF0YVR5cGUiOiIzRFNlY3VyZSIsInRyYW5zYWN0aW9uQW1vdW50IjoxMDAsImFwcGxpY2F0aW9uUHJpbWFyeUFjY291bnROdW1iZXIiOiI1NTU1NTU1NTU1NTU1NTk5In0=",
"decryptedToken":true,
"protocolVersion":"ECv1"
},
"toCard" : {
"pan" : "4111111111111111"
},
"params" : [
{"name" : "recipientName", "Name" : "Surname"},
{"name" : "payerName", "value" : "Name1 Surname1"},
{"name" : "payerCity", "value" : "City"},
{"name" : "payerCountry", "value" : "Country"},
{"name" : "payerPostalCode", "value" : "777777"},
{"name" : "payerState", "value" : "State"},
{"name" : "payerAddress", "value" : "street, 18"]
},
}'Exemple de deuxième demande en cas d'authentification par le protocole 3DS2
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
"username":"test_user",
"password":"test_user_password",
"orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
"fromCard": {
"cardholderName": "TEST CARDHOLDER",
"cvc": "123",
"expirationMonth": 12,
"expirationYear": 2030,
"pan": "5000001111111115"
},
"toCard": {
"pan": "4000001111111118"
},
"amount" : 50000,
"params" : [
{"name" : "recipientName", "Name" : "Surname"},
{"name" : "payerName", "value" : "Name1 Surname1"},
{"name" : "payerCity", "value" : "City"},
{"name" : "payerCountry", "value" : "Country"},
{"name" : "payerPostalCode", "value" : "777777"},
{"name" : "payerState", "value" : "State"},
{"name" : "payerAddress", "value" : "street, 18"
"threeDSServerTransId" : "3afc168a-94b4-4eb3-8e2e-80f6c186669d",
"threeDSVer2FinishUrl" : "https://example.com/acs2/acs/3dsMethod"
}'Exemple de demande de virement AFT
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
"username": "test_user",
"password": "test_user_password",
"orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
"fromCard": {
"cardholderName": "TEST CARDHOLDER",
"cvc": "123",
"expirationMonth": 12,
"expirationYear": 2030,
"pan": "5000001111111115"
},
"toCard": {
"replacementData": {
"card": "4111111111111111",
"account": "A044039940702810010192938471"
}
},
"amountInput": "1000025",
"type": "STANDARD"
}'Exemple de réponse à la première demande en cas d'authentification par le protocole 3DS2
{
"errorCode": 0,
"is3DSVer2": true,
"threeDSServerTransId": "3afc168a-94b4-4eb3-8e2e-80f6c186669d",
"threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
"threeDSMethodURLServer": "https://example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=3afc168a-94b4-4eb3-8e2e-80f6c186669d",
"threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
}Exemple de réponse à la deuxième demande en cas d'authentification par le protocole 3DS2
{
"errorCode": 0,
"info": "Your order is proceeded, redirecting...",
"acsUrl": "https://example.com/acs2/acs/creq",
"is3DSVer2": true,
"packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}Transfert P2P par liaison
Pour effectuer un transfert de carte à carte à l'aide d'une liaison, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de la requête
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| Condition | type |
String | En cas de virement monétaire avec des données pour une seule carte, il est nécessaire de transmettre dans ce paramètre la valeur correspondante :WITHOUT_FROM_CARD - sans indication de la carte pour le débit des fonds.WITHOUT_TO_CARD - sans indication de la carte pour le crédit. S'il s'agit d'un virement monétaire ordinaire de carte à carte, alors ici il est nécessaire de transmettre la valeur suivante : STANDARD. |
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | amountInput |
Integer [0..12] | Montant du virement dans les unités monétaires minimales (par exemple, en centimes). Si un montant est spécifié dans ce paramètre, le virement sera effectué pour ce montant (indépendamment du montant transmis dans la demande de traitement de commande). |
| Facultatif | amountInput |
Integer [0..12] | Montant du virement dans les unités monétaires minimales (par exemple, en centimes). Si un montant est spécifié dans ce paramètre, le virement sera effectué pour ce montant (indépendamment du montant transmis dans la demande de traitement de commande). |
| Facultatif | captcha |
String | CAPTCHA (texte destiné à distinguer la saisie humaine de la saisie machine) |
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| Facultatif | threeDSSDKEncData |
String | Données chiffrées sur l'appareil. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKReferenceNumber |
String | Identifiant officiel 3DS2 SDK |
| Facultatif | threeDSSDKEphemPubKey |
String | Partie publique de la clé éphémère. Requis pour établir une session avec ACS. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKAppId |
String | Identifiant unique du SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKTransId |
String | Identifiant unique de la transaction dans le SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
| Condition | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Condition | threeDSVer2MdOrder |
String [1..36] | Numéro de commande qui a été enregistré dans la première partie de la demande dans le cadre de l'opération 3DS2. Obligatoire pour l'authentification 3DS. Si ce paramètre est présent dans la demande, alors mdOrder est utilisé, qui est transmis dans le présent paramètre. Dans ce cas, l'enregistrement de la commande n'a pas lieu, mais le paiement de la commande se produit immédiatement.Ce paramètre est transmis uniquement lors de l'utilisation des méthodes de paiement instantané, c'est-à-dire, lorsque la commande est enregistrée et payée dans le cadre d'une seule demande. |
| Facultatif | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Condition | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Condition | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera effectuée par l'initiateur (Client ou Marchand). Obligatoire pour les opérations AFT et le transfert utilisant une liaison dans le bloc fromCard ou la liaison propre du marchand.Pour les opérations OCT, ce paramètre n'est pas transmis. Valeurs possibles |
| Facultatif | params |
Object | Champs d'informations supplémentaires pour le stockage ultérieur, transmis sous la forme suivante : {"param":"value","param2":"value2"}.Ces champs peuvent être transmis au processing de la banque pour affichage ultérieur dans les registres de la banque. Par défaut sont transmis orderNumber (numéro de commande) et orderDescription (description de la commande).orderDescription ne doit pas dépasser 99 caractères, n'utilisez pas les caractères suivants : %, +, retour chariot \r et saut de ligne
|
| ). Pour activer cette fonctionnalité, contactez la banque. Dans l'objet params de la demande de transfert d'argent de carte à carte peuvent être transmises les données suivantes du client (le format des valeurs dépend de la méthode de traitement des données utilisée) :
params les informations suivantes (le format des valeurs est déterminé par la méthode de traitement des données utilisée) :
Si nécessaire, contactez l'équipe de support pour spécifier les valeurs permanentes des paramètres payer* et recipientName, afin de ne pas les transmettre à chaque fois dans toutes les demandes. |
|||
| Facultatif | shippingPayerData |
Object | Objet contenant les données de livraison au client. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | preOrderPayerData |
Object | Objet contenant les données de précommande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | orderPayerData |
Object | Objet contenant les données sur le payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | billingAndShippingAddressMatchIndicator |
String [1] | Indicateur de correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Valeurs possibles :
|
| Condition | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour passer la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur côté Passerelle de paiement. Voir paramètres imbriqués. |
| Condition | billingRecipientData |
Object | Bloc de données sur le destinataire. Obligatoire si la fonction est activée pour le vendeur côté Passerelle de paiement. Voir paramètres imbriqués. |
| Obligatoire | fromCard |
Object | Bloc avec les attributs de la carte de débit. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec les attributs de la carte de crédit. Voir paramètres imbriqués. |
Valeurs possibles du paramètre tii :
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Données de carte sauvegardées après la transaction | Commentaire |
|---|---|---|---|---|---|---|
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisies par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non programmé (CIT) | Subséquente | Acheteur | Le client sélectionne la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
Le bloc fromCard comprend les paramètres suivants :
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Condition | bindingId |
String [1..255] | Identifiant de la liaison créée lors du paiement de la commande ou utilisée pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | pan |
String [1..19] | Numéro de carte de débit des fonds monétaires. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de débit. Obligatoire si le paiement n'est pas effectué par liaison et/ou si le vendeur n'a pas l'autorisation de paiement sans CVC. Seuls les chiffres sont autorisés. |
| Condition | expirationYear |
Integer [4] | Année d'expiration de la carte de débit. Les valeurs acceptées vont de 2000 à 2200. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | expirationMonth |
Integer [2] | Mois d'expiration de la carte de débit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de débit. |
| Condition | seToken |
String [1..8192] | Données de carte chiffrées. Obligatoire si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken : timestamp, UUID, bindingId, MDORDER. Plus de détails sur la génération seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | threeDsAuthResult |
Object | Bloc avec les données sur le résultat de l'authentification 3 DS utilisant MPI/3DS Server du marchand. Obligatoire pour les transactions de transfert de carte à carte et AFT utilisant MPI/3DS Server du marchand. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc threeDsAuthResult (données sur le résultat de l'authentification 3 DS).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | cavv |
String [0..200] | Valeur de vérification d'authentification du titulaire de la carte. Spécifiée uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| Facultatif | xid |
String [1..80] | Identifiant commercial électronique de la transaction. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| Facultatif | eci |
Integer [1..4] | Indicateur de commerce électronique. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. Ci-dessous se trouve le décodage des codes ECI.
|
| Conditionnel | threeDsType |
String | Type d'authentification 3DS. Ce paramètre est obligatoire pour le paiement via votre serveur 3DS avec 3DS 2. Pour les paiements SSL, ce paramètre est facultatif et est déterminé en fonction de la valeur ECI. Valeurs autorisées :
|
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
Le bloc toCard comprend les paramètres suivants :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | bindingId |
String [1..255] | Identifiant de la liaison créée lors du paiement de la commande ou utilisée pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Condition | pan |
String [1..19] | Numéro de carte pour le crédit de fonds. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Facultatif | expirationYear |
Integer [4] | Année d'expiration de la carte de crédit. Les valeurs acceptées vont de 2000 à 2200. |
| Facultatif | expirationMonth |
Integer [2] | Mois d'expiration de la carte de crédit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de crédit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des paramètres suivants : |
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
Ci-dessous sont présentés les paramètres du bloc billingRecipientData (données sur le destinataire).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | recipientCity |
String [0..40] | Code de la ville du destinataire. Format ISO 3166-1 alpha-3. Peut contenir uniquement des lettres de l'alphabet latin. |
| Condition | recipientCountry |
String [0..50] | Code du pays du destinataire. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO du pays à deux/trois lettres. Obligatoire pour Mastercard. |
| Facultatif | recipientAddressLine1 |
String [0..50] | Adresse du destinataire. Ne peut contenir que des lettres de l'alphabet latin. |
| Facultatif | recipientPostalCode |
String [0..9] | Code postal du destinataire. |
| Facultatif | recipientState |
String [0..50] | Code de l'état du destinataire. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Condition | recipientAccount |
String [0..32] | Numéro de compte du bénéficiaire. Obligatoire pour Mastercard. |
| Condition | recipientAccountNumberType |
Integer [1..2] | Type de compte du bénéficiaire. Valeurs possibles :
Obligatoire pour Mastercard. |
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Lors de l'authentification par le protocole 3DS2, les paramètres suivants sont également transmis :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | info |
String | Résultat de la tentative de transfert de fonds. Valeur en cas de transfert réussi : "Votre paiement est traité, redirection en cours..." Valeur en cas d'erreur : "Redirection en cours..." |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | termUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. Il s'agit de l'URL vers laquelle l'ACS redirige le porteur de carte après authentification. Pour plus de détails, voir Redirection vers ACS. |
| Condition | statusResponse |
Object | Paramètres du statut de réponse. Ce bloc n'est retourné que si vous avez activé le paramètre correspondant. Pour activer cette fonctionnalité, contactez le support technique. Voir paramètres imbriqués. |
Lors de l'authentification par le protocole 3DS2 en réponse à la première demande, les paramètres suivants arrivent :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | is3DSVer2 |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient de 3DS2. |
| Obligatoire | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSMethodUrl |
String [1..512] | URL du serveur ACS pour la collecte des données du navigateur. |
| Obligatoire | threeDSMethodUrlServer |
String [1..512] | URL du serveur 3DS pour collecter les données du navigateur qui seront incluses dans AReq (Authentication Request) du serveur 3DS vers le serveur ACS. |
| Facultatif | threeDSMethodDataPacked |
String [1..1024] | Données CReq (Challenge Response) en encodage Base-64 pour l'envoi au serveur ACS. |
| Facultatif | threeDSMethodURLServerDirect |
String [1..512] | Adresse URL 3dsmethod.do pour l'exécution de la méthode 3DS sur le serveur 3DS via la passerelle de paiement (en présence de l'autorisation correspondante au niveau du vendeur). |
Ci-dessous sont présentés les paramètres qui doivent être présents dans la réponse, après la demande répétée de paiement et la nécessité de rediriger le client vers ACS lors de l'authentification par le protocole 3DS2 :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Condition | packedCReq |
String | Données challenge request empaquetées. Obligatoire, si une redirection vers ACS est nécessaire. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. |
Paramètres du bloc statusResponse :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la première transaction (par exemple, un achat). Lors de l'exécution d'une opération inverse (remboursement, rétrofacturation, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
Exemples
Exemple de demande
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{
"amountInput" : 1000,
"fromCard" : {
"seToken": "ofVx1r3aIJ3Mlx3nkfeOIJgFOnwfsgFK+V6Yzm+KxJgsq19l74GChhX0We/LEFq78Rhn9uFAEZGdeyDhnIc/KfuvObf0EzoDA65Uj1Z8FjwWyjnEwTBHZL4KmdFBCSk8jLxHt70mXwyjiHYyCVH1fT/UVOnsrkZVGrqmEG4MTi5dX9Znzf24DwRg4iezvdT8vf0dUW5lJdvY1tgOsOnBulwy6kH/YbHVsnR6yxO6d6IsdnT5f8PxaB+7ZyUqgrd6VA88FGJKJgdoxk4721pqKSG5dYroLJG96s23EDJ2Hpi4e9wU2rP7E6dlFw+qzATqX/eaJbaQ9eakkdMWnkj7aQ=="
},
"toCard": {
"cardholderName": "IVAN IVANOV",
"cvc": "123",
"expirationMonth": 12,
"expirationYear": 2024,
"pan": "5555555555555599"
},
"orderId" : "3dbaf8bb-1d68-76b3-b4e6-784700f26b04",
"password" : "test_user_password",
"type" : "WITHOUT_TO_CARD",
"username" : "test_user"
}'Exemple de première demande en cas d'authentification par le protocole 3DS2
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{
"amountInput" : 1000,
"currency" : "978",
"fromCard" : {
"bindingId" : "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
},
"orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
"password" : "test_user_password",
"type" : "WITHOUT_TO_CARD",
"username" : "test_user",
"params" : {
"name" : "payerAddress",
"value" : "payer Address"
}
}'Exemple de deuxième demande en cas d'authentification par le protocole 3DS2
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{
"amountInput" : 1000,
"currency" : "978",
"fromCard" : {
"bindingId" : "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
},
"orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
"password" : "test_user_password",
"type" : "WITHOUT_TO_CARD",
"username" : "test_user",
"params" : {
"name" : "payerAddress",
"value" : "payer Address"
},
"threeDSServerTransId" : "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
"threeDSVer2FinishUrl" : "https://example.com/acs2/acs/3dsMethod"
}'Exemple de réponse
{
"errorCode" : 0,
"errorMessage" : "Successful",
"info" : "Your order is proceeded, redirecting...",
"redirect" : "https://example.com/?orderId=47743354-be15-7c70-b9ef-4bfc482e68dc&lang=en",
"is3DSVer2" : false
}Exemple de réponse à la première demande en cas d'authentification par le protocole 3DS2
{
"errorCode": 0,
"is3DSVer2": true,
"threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
"threeDSMethodURLServer": "https://example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134",
}Exemple de réponse à la deuxième demande en cas d'authentification par le protocole 3DS2
{
"errorCode": 0,
"info": "Your order is proceeded, redirecting...",
"acsUrl": "https://example.com/acs2/acs/creq",
"is3DSVer2": true,
"packedCReq" : "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjVmMzEyMjdlLTljZmQtNDQwYi1hNDNjLTE4NjljMzNhNGI5YiIsImFjc1RyYW5zSUQiOiI5YTQyYzQ4ZC1hNWRiLTQ3NjEtYmI4Mi05ZmY5MmM0NzZiM2QiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0="
}Traduction instantanée P2P
Pour effectuer une traduction instantanée P2P sans appeler une demande d'enregistrement de commande, utilisez la demande https://dev.bpcbt.com/payment/rest/api/p2p/instantPerformP2P.do.
Lors de l'exécution de la demande, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
La structure de la demande instantPerformP2P.do suppose la présence d'un bloc fromCard pour transmettre les attributs de la carte pour le débit et d'un bloc toCard pour transmettre les attributs de la carte pour le crédit. En fonction des processus métier définis pour la banque et le magasin, lors de l'exécution du transfert de carte à carte, les variantes suivantes peuvent être possibles.
- Le magasin transmet à la passerelle les données de la carte de débit et les données de la carte de crédit des fonds monétaires. Dans ce cas, les deux blocs de paramètres doivent être présents dans la demande —
fromCardettoCard. - Si le crédit sur la carte est effectué par un système tiers (opération AFT), alors le magasin transmet à la passerelle seulement les données de la carte de débit. Dans ce cas, il ne doit y avoir qu'un seul bloc de paramètres –
fromCard - Si le débit de la carte est effectué par un système tiers (opération OCT), alors le magasin transmet à la passerelle seulement les données de la carte de crédit. Dans ce cas, il ne doit y avoir qu'un seul bloc de paramètres –
toCard
Paramètres de la demande
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | clientId |
String [0..255] | Numéro du client (ID) dans le système du marchand — jusqu'à 255 caractères. Utilisé pour la mise en œuvre de la fonctionnalité de liaisons. Peut être retourné dans la réponse, si le marchand est autorisé à créer des liaisons. L'indication de ce paramètre lors du traitement des paiements par liaison est obligatoire. Dans le cas contraire, le paiement sera impossible. |
| Facultatif | bindingId |
String [1..255] | Identifiant d'une liaison déjà existante (identifiant de carte tokenisée par la passerelle). Il ne peut être utilisé que si le marchand a l'autorisation de travailler avec les liaisons. Si ce paramètre est transmis dans cette requête, cela signifie que :
|
| Facultatif | creditBindingId |
String [0..255] | Identifiant de liaison de carte pour le crédit. Utilisé lors des transferts de carte à carte, lorsque la carte du destinataire est connue à l'avance. Ce paramètre doit d'abord être transmis dans la demande d'enregistrement de paiement (registerP2P.do - ici aussi doit être transmis le paramètre clientId), puis dans la demande de transfert de fonds par liaison (performP2PByBinding.do - la valeur du paramètre creditBindingId, transmise dans registerP2P.do, doit être transmise dans le paramètre bindingId dans le bloc toCard). |
| Facultatif | email |
String [1..40] | Adresse électronique du payeur. |
| Obligatoire | amount |
String [0..12] | Montant du virement en unités monétaires minimales (par exemple, en centimes). Ce paramètre est transmis si le payeur décide de modifier le montant du virement lors de l'exécution du virement monétaire. |
| Obligatoire | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | type |
String | En cas de virement monétaire avec des données pour une seule carte, il est nécessaire de transmettre dans ce paramètre la valeur correspondante :WITHOUT_FROM_CARD - sans indication de la carte pour le débit des fonds.WITHOUT_TO_CARD - sans indication de la carte pour le crédit. S'il s'agit d'un virement monétaire ordinaire de carte à carte, alors ici il est nécessaire de transmettre la valeur suivante : STANDARD. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | params |
Object | Champs d'informations supplémentaires pour le stockage ultérieur, transmis sous la forme suivante : "params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].Ces champs peuvent être transmis au processing de la banque pour l'affichage ultérieur dans les registres de la banque. Par défaut sont transmis orderNumber (numéro de commande) et orderDescription (description de commande).orderDescription ne doit pas dépasser 99 caractères, n'utilisez pas les caractères suivants : %, +, retour chariot \r et saut de ligne
|
| ). Pour activer cette fonctionnalité, contactez la banque. |
|||
| Facultatif | feeInput |
Integer [0..8] | Taille de la commission en unités minimales de la devise. La fonctionnalité doit être activée au niveau du vendeur dans la passerelle. |
| Obligatoire | returnUrl |
String [1..512] | Adresse vers laquelle l'utilisateur doit être redirigé en cas de paiement réussi. L'adresse doit être spécifiée complètement, y compris le protocole utilisé (par exemple, https://mybestmerchantreturnurl.com au lieu de mybestmerchantreturnurl.com). Sinon, l'utilisateur sera redirigé vers une adresse du type suivant : https://dev.bpcbt.com/payment/<merchant_address>. |
| Facultatif | failUrl |
String [1..512] | Adresse vers laquelle il faut rediriger l'utilisateur en cas de paiement échoué. L'adresse doit être spécifiée entièrement, y compris le protocole utilisé (par exemple, https://mybestmerchantreturnurl.com au lieu de mybestmerchantreturnurl.com). Sinon, l'utilisateur sera redirigé vers une adresse du type suivant : https://dev.bpcbt.com/payment/<merchant_address>. |
| Obligatoire | transactionTypeIndicator |
String | Utilisé dans les types de transactions unidirectionnelles. Les valeurs possibles sont :
|
| Condition | features |
Object | Conteneur pour le paramètre feature, obligatoire pour les opérations unidirectionnelles.Si une opération AFT (transfert de carte vers compte) est exécutée - dans le paramètre feature doit être transmis WITHOUT_TO_CARD. De plus, si après cette opération AFT une opération OCT est prévue, il est nécessaire de transmettre la valeur OCT_EXPECTED. Exemple : "features" : { "feature" : ["WITHOUT_TO_CARD"] } Si une opération OCT (transfert de compte vers carte) est exécutée - dans le paramètre feature doit être transmis WITHOUT_FROM_CARD. Exemple : "features" : { "feature" : ["WITHOUT_FROM_CARD"] } |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Facultatif | merchantLogin |
String [1..255] | Pour enregistrer une commande au nom d'un autre marchand, spécifiez son login (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de consulter les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Facultatif | dynamicCallbackUrl |
String [1..512] | Paramètre pour transmettre l'adresse dynamique pour recevoir les notifications callback "de paiement" pour la commande, activées pour le marchand (autorisation réussie, débit réussi, remboursement, annulation, rejet du paiement par timeout, rejet du paiement card present). Les notifications callback "non liées au paiement" (activation/désactivation de liaison, création de liaison), seront envoyées à l'adresse callback statique. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | type |
String | En cas de virement monétaire avec des données pour une seule carte, il est nécessaire de transmettre dans ce paramètre la valeur correspondante :WITHOUT_FROM_CARD - sans indication de la carte pour le débit des fonds.WITHOUT_TO_CARD - sans indication de la carte pour le crédit. S'il s'agit d'un virement monétaire ordinaire de carte à carte, alors ici il est nécessaire de transmettre la valeur suivante : STANDARD. |
| Facultatif | captcha |
String | CAPTCHA (texte destiné à distinguer la saisie humaine de la saisie machine) |
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| Facultatif | threeDSSDKEncData |
String | Données chiffrées sur l'appareil. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKReferenceNumber |
String | Identifiant officiel 3DS2 SDK |
| Facultatif | threeDSSDKEphemPubKey |
String | Partie publique de la clé éphémère. Requis pour établir une session avec ACS. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKAppId |
String | Identifiant unique du SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKTransId |
String | Identifiant unique de la transaction dans le SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
| Condition | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Condition | threeDSVer2MdOrder |
String [1..36] | Numéro de commande qui a été enregistré dans la première partie de la demande dans le cadre de l'opération 3DS2. Obligatoire pour l'authentification 3DS. Si ce paramètre est présent dans la demande, alors mdOrder est utilisé, qui est transmis dans le présent paramètre. Dans ce cas, l'enregistrement de la commande n'a pas lieu, mais le paiement de la commande se produit immédiatement.Ce paramètre est transmis uniquement lors de l'utilisation des méthodes de paiement instantané, c'est-à-dire, lorsque la commande est enregistrée et payée dans le cadre d'une seule demande. |
| Facultatif | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Condition | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Condition | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération l'initiateur (Client ou Marchand) va exécuter. Obligatoire pour les opérations AFT et le transfert utilisant la liaison dans le bloc fromCard ou la liaison propre du marchand.Pour les opérations OCT ce paramètre n'est pas transmis. Valeurs possibles |
| Facultatif | shippingPayerData |
Object | Objet contenant les données de livraison au client. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | preOrderPayerData |
Object | Objet contenant les données de précommande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | orderPayerData |
Object | Objet contenant les données sur le payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | billingAndShippingAddressMatchIndicator |
String [1] | Indicateur de correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Valeurs possibles :
|
| Condition | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour passer la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur du côté de la Passerelle de paiement. Voir paramètres imbriqués. |
| Condition | billingRecipientData |
Object | Bloc avec les données sur le destinataire. Obligatoire si la fonction est activée pour le vendeur du côté de la Passerelle de paiement. Voir paramètres imbriqués. |
| Obligatoire | fromCard |
Object | Bloc avec les attributs de la carte de débit. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec attributs de la carte de crédit. Voir paramètres imbriqués. |
| Facultatif | debitMdOrder |
String [1..36] | Numéro unique de commande pour laquelle le transfert AFT a été exécuté dans iPay. Ce paramètre est utilisé pour les opérations OCT lors des transferts P2P (AFT+OCT). |
Valeurs possibles du paramètre tii :
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Données de carte sauvegardées après la transaction | Commentaire |
|---|---|---|---|---|---|---|
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisies par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non programmé (CIT) | Subséquente | Acheteur | Le client sélectionne la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
Ci-dessous sont présentés les paramètres du bloc billingRecipientData (données sur le destinataire).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | recipientCity |
String [0..40] | Code de la ville du destinataire. Format ISO 3166-1 alpha-3. Peut contenir uniquement des lettres de l'alphabet latin. |
| Condition | recipientCountry |
String [0..50] | Code du pays du destinataire. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO du pays à deux/trois lettres. Obligatoire pour Mastercard. |
| Facultatif | recipientAddressLine1 |
String [0..50] | Adresse du destinataire. Ne peut contenir que des lettres de l'alphabet latin. |
| Facultatif | recipientPostalCode |
String [0..9] | Code postal du destinataire. |
| Facultatif | recipientState |
String [0..50] | Code de l'état du destinataire. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Condition | recipientAccount |
String [0..32] | Numéro de compte du bénéficiaire. Obligatoire pour Mastercard. |
| Condition | recipientAccountNumberType |
Integer [1..2] | Type de compte du bénéficiaire. Valeurs possibles :
Obligatoire pour Mastercard. |
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Le bloc fromCard comprend les paramètres suivants :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | pan |
String [1..19] | Numéro de carte de débit des fonds monétaires. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | cvc |
String [3] | Code CVC/CVV2 au verso de la carte de débit. Obligatoire si le paiement n'est pas effectué par liaison et/ou si le vendeur n'a pas l'autorisation de paiement sans CVC. Seuls les chiffres sont autorisés. |
| Condition | expirationYear |
Integer [4] | Année d'expiration de la carte de débit. Les valeurs acceptées vont de 2000 à 2200. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | expirationMonth |
Integer [2] | Mois d'expiration de la carte de débit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de débit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Condition | threeDsAuthResult |
Object | Bloc avec les données sur le résultat de l'authentification 3 DS en utilisant MPI/3DS Server du marchand. Obligatoire pour les transactions de virement de carte à carte et AFT en utilisant MPI/3DS Server du marchand. Voir paramètres imbriqués. |
Lors des paiements utilisant des tokens (APPLE, SAMSUNG, GOOGLE) au lieu des données de carte dans le bloc fromCard est transmis :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | vendor |
String | Paramètre utilisé lors du paiement par tokens. En tant que valeur, le nom du fournisseur de service de paiement est transmis : APPLE, GOOGLE, SAMSUNG.Ce paramètre doit être transmis simultanément avec le paramètre paymentToken (valeur du token).Ce paramètre ne peut pas être présent simultanément avec les paramètres : pan, cvc, expiry, bindingId, seToken. |
| Condition | paymentToken |
String [1..8192] | Valeur du token du fournisseur, spécifié dans le paramètre vendor (APPLE, GOOGLE, SAMSUNG). Si vendor est spécifié, le paramètre est obligatoire à transmettre.Ce paramètre ne peut pas être présent simultanément avec les paramètres : pan, cvc, expiry, bindingId, seToken. |
| Facultatif | decryptedToken |
Boolean | Jeton déchiffré pour les paiements via les fournisseurs (ApplePay, GooglePay, etc.). Valeurs possibles :
Si ce paramètre n'est pas transmis, par défaut il sera considéré que decryptedToken = false est transmis. |
| Facultatif | protocolVersion |
String | Version du protocole définie par Google pour le jeton de paiement : ECv1 (par défaut) ou ECv2
|
Ci-dessous sont énumérés les paramètres du bloc threeDsAuthResult (données sur le résultat de l'authentification 3 DS).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | cavv |
String [0..200] | Valeur de vérification d'authentification du titulaire de la carte. Spécifiée uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| Facultatif | xid |
String [1..80] | Identifiant commercial électronique de la transaction. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| Facultatif | eci |
Integer [1..4] | Indicateur de commerce électronique. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. Ci-dessous se trouve le décodage des codes ECI.
|
| Conditionnel | threeDsType |
String | Type d'authentification 3DS. Ce paramètre est obligatoire pour le paiement via votre serveur 3DS avec 3DS 2. Pour les paiements SSL, ce paramètre est facultatif et est déterminé en fonction de la valeur ECI. Valeurs autorisées :
|
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
Le bloc toCard comprend les paramètres suivants :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | bindingId |
String [1..255] | Identifiant de la liaison créée lors du paiement de la commande ou utilisée pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Condition | pan |
String [1..19] | Numéro de carte pour le crédit de fonds. Il est nécessaire de transmettre l'un des paramètres suivants : |
| Facultatif | expirationYear |
Integer [4] | Année d'expiration de la carte de crédit. Les valeurs acceptées vont de 2000 à 2200. |
| Facultatif | expirationMonth |
Integer [2] | Mois d'expiration de la carte de crédit. Valeurs disponibles : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de la carte de crédit. |
| Condition | seToken |
String | Données de carte chiffrées. Obligatoire, si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici.Il est nécessaire de transmettre l'un des paramètres suivants : |
Dans certains cas, la demande pour une transaction AFT comprend le bloc toCard avec le bloc imbriqué replacementData avec les données pour remplacer la destination du virement dans les transactions AFT. Il contient le numéro de carte et le numéro de compte de transit du destinataire. Certains systèmes de paiement exigent la transmission de ces données dans les transactions AFT, c'est-à-dire que ces données sont utilisées pour l'authentification sur ACS pendant l'autorisation 3DS.
Pour utiliser ce bloc, le marchand doit avoir une autorisation spéciale (vérifiez auprès de l'équipe de support).
Ci-dessous sont énumérés les paramètres du bloc replacementData (données pour remplacer la destination dans les transactions AFT) :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | card | String [1..19] | Numéro de carte du destinataire, s'il est connu au moment du virement. |
| Facultatif | account | String [1..30] | Numéro de compte de transit (tout numéro fourni par la banque). |
Lors de l'authentification par le protocole 3DS2, les paramètres suivants sont également transmis :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | info |
String | Résultat de la tentative de transfert de fonds. Valeur en cas de transfert réussi : "Votre paiement est traité, redirection en cours..." Valeur en cas d'erreur : "Redirection en cours..." |
| Facultatif | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | redirect |
String [1..512] | Ce paramètre est renvoyé si le paiement a réussi et qu'aucune vérification de la carte pour l'implication dans 3-D Secure n'a été effectuée pour le paiement. Les vendeurs peuvent l'utiliser s'ils souhaitent rediriger l'utilisateur vers la page de la passerelle de paiement. Si le vendeur utilise sa propre page, cette valeur peut être ignorée. |
| Facultatif | threeDSSDKKey |
String | Clé de chiffrement des données de l'appareil. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSAcsTransactionId |
String | Identifiant de transaction 3DS dans ACS. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSAcsRefNumber |
String | Numéro de référence sur ACS. |
| Facultatif | threeDSAcsSignedContent |
String | Contenu signé pour le SDK, le contenu inclut l'adresse URL ACS. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSDsTransID |
String | Identifiant unique de la transaction à l'intérieur du MPS. Le paramètre est obligatoire pour le SDK. |
| Conditionnel | statusResponse |
Object | Paramètres du statut de réponse. Ce bloc est retourné uniquement si vous avez activé le paramètre correspondant. Pour activer cette fonctionnalité, contactez le support technique. Voir paramètres imbriqués. |
Paramètres du bloc statusResponse :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la première transaction (par exemple, un achat). Lors de l'exécution d'une opération inverse (remboursement, rétrofacturation, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
Lors de l'authentification par protocole 3DS2, les paramètres suivants sont renvoyés en réponse à la première requête :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSMethodUrl |
String [1..512] | URL du serveur ACS pour la collecte des données du navigateur. |
| Obligatoire | threeDSMethodUrlServer |
String [1..512] | URL du serveur 3DS pour collecter les données du navigateur qui seront incluses dans AReq (Authentication Request) du serveur 3DS vers le serveur ACS. |
| Facultatif | threeDSMethodDataPacked |
String [1..1024] | Données CReq (Challenge Response) en encodage Base-64 pour l'envoi au serveur ACS. |
| Facultatif | threeDSMethodURLServerDirect |
String [1..512] | Adresse URL 3dsmethod.do pour l'exécution de la méthode 3DS sur le serveur 3DS via la passerelle de paiement (en présence de l'autorisation correspondante au niveau du vendeur). |
Voici les paramètres qui doivent être présents dans la réponse, après une nouvelle requête de paiement et la nécessité de rediriger le client vers ACS lors de l'authentification par protocole 3DS2 :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Conditionnel | packedCReq |
String | Données challenge request empaquetées. Obligatoire, si une redirection vers ACS est nécessaire. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. |
Pour finaliser la transaction, utilisez la méthode /p2p/finishThreeDsVer2.do.
Exemples
Exemple de transaction AFT :
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/instantPerformP2P.do' '
--header 'Content-Type: application/json' \
--data '{
"username": "test_user",
"password": "test_user_password",
"email" : "test@example.com",
"orderNumber" : "abcd1234abchh",
"amount" : 1500,
"currency" : "978",
"returnUrl" : "https://mybestmerchantreturnurl.com",
"failUrl" : "https://failUrl.com",
"transactionTypeIndicator": "A",
"features" : {
"feature" : ["WITHOUT_TO_CARD"]
},
"fromCard" : {
"cardholderName": "TEST CARDHOLDER",
"pan" : "5000001111111115",
"cvc" : "123",
"expirationYear" : "2024",
"expirationMonth" : "12"
},
"amountInput": "6000",
"billingPayerData": {
"billingCountry":"CYP",
"billingCity":"Larnaka",
"billingAddressLine1":"Stadiou 1",
"payerBirthday": "20211512",
"payerAccount": "DE1051078567",
"payerLastName": "Kostas",
"payerFirstName": "Parnas",
"payerMiddleName": "Illigel",
"payerCombinedName": "Kostas Parnas Illigel"
},
"billingRecipientData": {
"recipientFirstName": "Rodetos",
"recipientLastName": "Castinos",
"recipientMiddleName": "Internal",
recipientCombinedName": "Rodetos Castinos Internal",
"recipientCountry": "CYP",
"recipientAccount": "DE3840401048",
"recipientAccountNumberType": 1
},
}'Exemple de transaction OCT
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/instantPerformP2P.do' '
--header 'Content-Type: application/json' \
--data '{
"username": "test_user",
"password": "test_user_password",
"email" : "test@example.com",
"orderNumber" : "abcd1234abchh",
"amount" : 1500,
"currency" : "978",
"returnUrl" : "https://mybestmerchantreturnurl.com",
"failUrl" : "https://failUrl.com",
"toCard": {
"pan": "4000001111111118"
},
"transactionTypeIndicator": "G",
"features": {
"feature": [
"WITHOUT_FROM_CARD"
]
}
}'Exemple de réponse à la requête :
{
"errorCode": 0,
"info": "Your order is proceeded, redirecting...",
"acsUrl": "https://example.com/acs2/acs/creq",
"is3DSVer2": true,
"packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}Statut de virement P2P
Pour obtenir le statut d'une commande P2P enregistrée, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/getP2PStatus.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Conditionnel | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Conditionnel | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la première transaction (par exemple, un achat). Lors de l'exécution d'une opération inverse (remboursement, rétrofacturation, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
L'élément payerData contient les paramètres suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | paymentAccountReference |
String [1..29] | Numéro unique du compte client, reliant tous ses moyens de paiement dans le cadre du SPI (cartes et jetons). |
Ci-dessous sont présentés les paramètres possibles du bloc operationList.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | operationType |
String | Type de transaction. Les valeurs suivantes sont disponibles :
|
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | datetime |
String | Date et heure de l'exécution de l'opération. |
| Facultatif | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | resultCodeDescription |
String [1..512] | Description du code d'erreur de la transaction. |
| Facultatif | maskedPan |
String [1..19] | Numéro de carte masqué ou token utilisé pour le paiement. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de carte (le cas échéant). |
| Facultatif | refNum |
String [12] | Identifiant unique de l'opération, attribué par la banque acquéreuse lors du traitement du paiement par carte bancaire. Le RRN est créé exclusivement par la banque acquéreuse et est utilisé pour la recherche, la vérification et le règlement ultérieurs des opérations (y compris les remboursements, chargebacks et enquêtes). |
Exemples
Exemple de requête
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/getP2PStatus.do'
-H 'Content-Type: application/json'
--data-raw '{
"username": "test_user",
"password": "test_user_password",
"orderId" : "0a4eaae8-653a-71a9-8259-46fc00a8ea58"
}'Exemple de réponse
{
"orderStatus": 0,
"errorCode": 0,
"errorMessage": "Successful",
"orderNumber": "2009",
"amount": 50000,
"currency": "978",
"creationDate": 1674137044330,
"orderParams": [],
"operationList": [],
"resultCode": 0
}Finalisation de la transaction P2P 3DS2 via API
Pour finaliser la transaction P2P, le vendeur envoie l'identifiant de la transaction à la passerelle en utilisant la méthode https://dev.bpcbt.com/payment/rest/api/p2p/finishThreeDsVer2.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/x-www-form-urlencoded
Paramètres de la requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | tDsTransId |
String [1..36] | Identifiant unique de transaction obtenu du serveur 3DS. |
Paramètres de la réponse
La réponse à cette requête ne contient aucun paramètre JSON. Au lieu de cela, elle redirige le client vers l'une des URL suivantes :
- Si le traitement de la requête s'est déroulé avec succès, la passerelle de paiement redirige le client vers l'URL indiquée dans le paramètre
returnUrllors de l'enregistrement de la commande, avec les paramètres ajoutésorderIdetlang; - Si le traitement de la requête s'est déroulé sans succès, la passerelle de paiement redirige le client vers l'URL indiquée dans le paramètre
failUrllors de l'enregistrement de la commande, avec les paramètres ajoutésorderIdetlang.
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/api/p2p/finishThreeDsVer2.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data '{
"username": "test_user",
"password": "test_user_password",
"threeDSServerTransId": "65020d0c-2627-4a45-8eab-b93b58fc52ae"
}'Exemple d'URL de redirection
https://mybestmerchantreturnurl.com/finish.html?orderId=906bf262-bd53-4ac7-983c-07127954681b&lang=en