Pour toute question, nous sommes à un clic

Poser une question

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 :

Scénario de traitement d'opération P2P avec saisie des données de paiement côté passerelle de paiement

sequenceDiagram participant C as Client participant OS as Boutique en ligne participant PG as Passerelle de paiement participant ACS as ACS autonumber C ->> OS: Formation de commande OS ->> PG: Enregistrement de commande PG -->> OS: orderId, formUrl OS -->> C: Redirection vers le formulaire de collecte des données de carte C ->> PG: Obtention du formulaire de collecte des données de carte PG -->> C: Formulaire de collecte des données de carte C ->> PG: Envoi des données dans le formulaire rempli PG ->> PG: Vérification de l'implication de la carte dans 3-D Secure PG -->> C: Redirection du client vers ACS C ->> ACS: Obtention du formulaire d'autorisation ACS -->> C: Formulaires d'autorisation C ->> ACS: Remplissage du formulaire ACS -->> C: Redirection du client vers la passerelle de paiement C ->> PG: Finalisation du paiement sécurisé PG ->> PG: Traitement du paiement PG -->> C: Redirection du client vers la boutique en ligne C ->> OS: Obtention de la page avec le résultat OS ->> PG: Vérification du statut PG -->> OS: Statut de la commande OS -->> C: Affichage du résultat
  1. 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.
  2. 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.
  3. 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.
  4. Le système de la boutique en ligne transmet l'adresse URL de redirection reçue à l'Étape 3 au navigateur du client.
  5. Le navigateur du client ouvre l'adresse URL.
  6. À l'adresse URL indiquée le navigateur du client obtient le formulaire pour la collecte des données de carte.
  7. Le client remplit le formulaire et les données sont envoyées au serveur de la passerelle de paiement.
  8. Le système vérifie l'appartenance de la carte à 3-D Secure (SecureCode).
  9. 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).
  10. Le navigateur web du client demande le formulaire d'autorisation utilisateur à ACS.
  11. ACS envoie le formulaire d'autorisation dans le navigateur web du client.
  12. Le client remplit le formulaire et les données sont envoyées au serveur de la passerelle de paiement.
  13. 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.
  14. 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.
  15. La passerelle de paiement transfère l'argent.
  16. 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).
  17. Le navigateur web du client demande les résultats du transfert d'argent à la boutique en ligne.
  18. Le système de boutique en ligne demande les informations sur le statut de la commande à la passerelle de paiement – getP2PStatus.do.
  19. La passerelle de paiement retourne le statut de la commande.
  20. 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

sequenceDiagram participant C as Client participant OS as Boutique en ligne participant PG as Passerelle de paiement participant 3DSS as 3DS Server participant ACS as ACS autonumber C ->> OS: Formation de commande OS ->> OS: Collecte des données de carte OS ->> PG: Enregistrement de commande PG -->> OS: Réponse à l'enregistrement de commande OS ->> PG: Demande du montant de commission PG -->> OS: Obtention du montant de commission OS ->> PG: Demande de transfert de carte à carte PG -> 3DSS: Vérification de disponibilité 3DSv2 PG -->> OS: Réponse à la demande de transfert de carte à carte OS ->> 3DSS: Appel iframe caché (threeDSMethodURLServer) opt [si threeDSMethodURL est dans la réponse] OS ->> ACS: Appel iframe caché (threeDSMethodURL) end OS ->> PG: Deuxième demande de transfert de fonds PG ->> 3DSS: Demande d'authentification 3DSS ->> ACS: Demande d'authentification ACS -->> 3DSS: Réponse à la demande d'authentification 3DSS -->> PG: Réponse à la demande d'authentification PG -->> OS: Réponse à la demande opt [Redirection vers ACS requise] OS ->> ACS: CReq (ChallengeRequest) ACS -->> C: Formulaire HTML pour passer l'authentification C ->> ACS: Confirmation d'authenticité ACS ->> ACS: Traitement des données ACS -> 3DSS: Échange de données ACS -->> C: Résultat du traitement des données et redirection du client vers la page de boutique OS ->> PG: finish3dsVer2Payment.do PG -->> OS: Réponse à la demande end OS ->> PG: Demande de statut de commande PG -->> OS: Réponse à la demande de statut de commande OS -->> C: Affichage du résultat
  1. Le porteur de carte (client) interagit avec la boutique en ligne pour créer une commande.
  2. Le système de boutique en ligne collecte les données de carte de son côté.
  3. 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.
  4. La passerelle de paiement en réponse à la demande d'enregistrement retourne l'identifiant unique de commande dans le système de paiement.
  5. 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.
  6. Optionnel. La passerelle de paiement envoie en réponse le montant de commission.
  7. 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é.
  8. La Passerelle de paiement vérifie sur le serveur 3DS si le client peut s'authentifier en utilisant le protocole 2.0.
  9. 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).
  10. La boutique en ligne appelle threeDSMethodURLServer dans un iframe séparé en utilisant la méthode POST, 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.
  11. Facultatif. Si les paramètres threeDSMethodURL et threeDSMethodDataPacked ont é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 POST threeDSMethodURL.
  12. 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ètre threeDSServerTransId - identifiant de transaction qui a été créé par le serveur 3DS et retourné à l'Étape 10.
  13. La Passerelle de paiement envoie une demande d'authentification au serveur 3DS.
  14. Le serveur 3DS envoie une demande d'authentification (AReq) au serveur ACS.
  15. Le serveur ACS envoie une réponse à la demande d'authentification (ARes) au serveur 3DS.
  16. 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.
  17. La page de paiement redirige vers acsUrl avec le paramètre creq=packedCReq.
  18. ACS affiche la page d'authentification pour le client (page challenge).
  19. Le client est authentifié.
  20. Le serveur ACS vérifie l'authenticité des données d'authentification.
  21. Un échange de données a lieu entre les serveurs ACS et 3DS et le résultat du traitement est confirmé.
  22. Le serveur ACS redirige le client vers la page de la boutique.
  23. La boutique en ligne envoie une demande /p2p/finishThreeDsVer2.do à la passerelle de paiement.
  24. La Passerelle de paiement envoie à la boutique en ligne une réponse à la demande faite.
  25. La boutique en ligne envoie getP2PStatus.do au passerelle de paiement, afin de connaître le statut de la commande.
  26. La passerelle de paiement envoie une réponse à la demande effectuée.
  27. 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 :

Scénario d'opération AFT avec saisie des données de paiement du côté de la passerelle de paiement

sequenceDiagram participant C as Client participant OS as Boutique en ligne participant PG as Passerelle de paiement participant ACS as ACS autonumber C ->> OS: Formation de commande OS ->> PG: Enregistrement de commande PG -->> OS: orderId, formUrl OS -->> C: Redirection vers le formulaire de collecte des données de carte C ->> PG: Obtention du formulaire de collecte des données de carte PG -->> C: Formulaire de collecte des données de carte C ->> PG: Envoi des données dans le formulaire rempli PG ->> PG: Vérification de l'implication de la carte dans 3-D Secure PG -->> C: Redirection du client vers ACS C ->> ACS: Obtention du formulaire d'autorisation ACS -->> C: Formulaires d'autorisation C ->> ACS: Remplissage du formulaire ACS -->> C: Redirection du client vers la passerelle de paiement C ->> PG: Finalisation du paiement sécurisé PG ->> PG: Réalisation du paiement PG -->> C: Redirection du client vers la boutique en ligne C ->> OS: Obtention de la page avec le résultat OS ->> PG: Vérification du statut PG -->> OS: Statut de commande OS -->> C: Affichage du résultat
  1. 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.
  2. 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.
  3. 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.
  4. Le système de boutique en ligne transmet l'URL de redirection reçue à l'Étape 3 au navigateur du client.
  5. Le navigateur du client ouvre l'URL.
  6. À l'URL indiquée, le navigateur du client obtient le formulaire de collecte des données de carte.
  7. Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
  8. Le système vérifie l'appartenance de la carte à 3-D Secure (SecureCode).
  9. 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).
  10. Le navigateur web du client demande le formulaire d'autorisation utilisateur depuis ACS.
  11. ACS envoie le formulaire d'autorisation dans le navigateur web du client.
  12. Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
  13. 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.
  14. 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.
  15. La Passerelle de paiement transfère l'argent.
  16. 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).
  17. Le navigateur web du client demande les résultats du transfert d'argent depuis la boutique en ligne.
  18. Le système de boutique en ligne demande les informations sur le statut de la commande à la passerelle de paiement – getP2PStatus.do.
  19. La Passerelle de paiement retourne le statut de la commande.
  20. 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

sequenceDiagram participant C as Client participant OS as Boutique en ligne participant PG as Passerelle de paiement participant 3DSS as 3DS Server participant ACS as ACS autonumber C ->> OS: Formation de commande OS ->> OS: Collecte des données de carte OS ->> PG: Enregistrement de commande PG -->> OS: Réponse à l'enregistrement de commande OS ->> PG: Demande du montant de commission PG -->> OS: Obtention du montant de commission OS ->> PG: Demande de virement de carte à carte PG -> 3DSS: Vérification de disponibilité 3DSv2 PG -->> OS: Réponse à la demande de virement de carte à carte OS ->> 3DSS: Appel iframe caché (threeDSMethodURLServer) opt [si threeDSMethodURL est présent dans la réponse] OS ->> ACS: Appel iframe caché (threeDSMethodURL) end OS ->> PG: Deuxième demande de virement de fonds PG ->> 3DSS: Demande d'authentification 3DSS ->> ACS: Demande d'authentification ACS -->> 3DSS: Réponse à la demande d'authentification 3DSS -->> PG: Réponse à la demande d'authentification PG -->> OS: Réponse à la demande opt [Redirection vers ACS requise] OS ->> ACS: CReq (ChallengeRequest) ACS -->> C: Formulaire HTML pour passer l'authentification C ->> ACS: Confirmation d'authenticité ACS ->> ACS: Traitement des données ACS -> 3DSS: Échange de données ACS -->> C: Résultat du traitement des données et redirection du client vers la page de la boutique OS ->> PG: finish3dsVer2Payment.do PG -->> OS: Réponse à la demande end OS ->> PG: Demande de statut de commande PG -->> OS: Réponse à la demande de statut de commande OS -->> C: Affichage du résultat
  1. Le porteur de carte (client) interagit avec la boutique en ligne pour créer une commande.
  2. Le système de la boutique en ligne collecte les données de carte de son côté.
  3. 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.
  4. La Passerelle de paiement en réponse à la demande d'enregistrement retourne un identifiant unique de commande dans le système de paiement.
  5. 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.
  6. Optionnel. La Passerelle de paiement envoie en réponse le montant de la commission.
  7. 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é.
  8. La Passerelle de paiement vérifie sur le serveur 3DS si le client peut s'authentifier en utilisant le protocole 2.0.
  9. 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).
  10. La boutique en ligne appelle threeDSMethodURLServer dans un iframe séparé en utilisant la méthode POST, 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.
  11. Optionnel. Si dans la réponse à la demande de transfert de fonds les paramètres threeDSMethodURL et threeDSMethodDataPacked ont été obtenus, la boutique en ligne appelle dans un iframe séparé par méthode POST threeDSMethodURL.
  12. 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ètre threeDSServerTransId - identifiant de transaction qui a été créé par le serveur 3DS et retourné à l'Étape 10.
  13. La Passerelle de paiement envoie une demande d'authentification au serveur 3DS.
  14. Le serveur 3DS envoie une demande d'authentification (AReq) au serveur ACS.
  15. Le serveur ACS envoie une réponse à la demande d'authentification (ARes) au serveur 3DS.
  16. 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.
  17. La page de paiement redirige vers acsUrl avec le paramètre creq=packedCReq.
  18. ACS affiche une page d'authentification pour le client (page challenge).
  19. Le client est authentifié.
  20. Le serveur ACS vérifie l'authenticité des données d'authentification.
  21. Il y a un échange de données entre les serveurs ACS et 3DS et le résultat du traitement est confirmé.
  22. Le serveur ACS redirige le client vers la page du magasin.
  23. Le magasin en ligne envoie une demande /p2p/finishThreeDsVer2.do à la passerelle de paiement.
  24. La passerelle de paiement envoie au magasin en ligne une réponse à la demande effectuée.
  25. Le magasin en ligne envoie getP2PStatus.do à la passerelle de paiement pour connaître le statut de la commande.
  26. La passerelle de paiement envoie une réponse à la demande effectuée.
  27. 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.

Scénario de réalisation de transaction OCT

sequenceDiagram participant C as Client participant OS as Magasin en ligne participant PG as Passerelle de paiement C ->> OS: 1. Formation de commande OS ->> PG: 2. Enregistrement de commande PG -->> OS: 3. orderId, formUrl OS -->> C: 4. Redirection vers le formulaire de collecte des données de carte C ->> PG: 5. Envoi de données dans le formulaire rempli PG ->> PG: 6. Transfert de fonds PG -->> C: 7. Redirection du client vers le magasin en ligne C ->> OS: 8. Obtention de la page avec le résultat OS ->> PG: 9. Vérification du statut PG -->> OS: 10. Statut de la commande OS -->> C: 11. Affichage du résultat
  1. Le porteur de carte (client) interagit avec le magasin en ligne pour créer une commande.
  2. 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.
  3. 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.
  4. Le système du magasin en ligne transmet l'adresse URL de redirection, reçue à l'Étape 3, au navigateur du client.
  5. Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
  6. La passerelle de paiement effectue le transfert de fonds via performP2P.do.
  7. 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).
  8. Le navigateur web du client demande les résultats du transfert d'argent au magasin en ligne.
  9. Le système du magasin en ligne demande des informations sur le statut de la commande à la passerelle de paiement – getP2PStatus.do.
  10. La passerelle de paiement retourne le statut de la commande.
  11. 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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
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 :
  • A - Transfert de carte à carte d'un même propriétaire (de compte à compte)
  • B - Transfert dans le but d'acquérir de la cryptomonnaie
  • C - Transfert à des fins d'achat de cryptomonnaie
  • D - Paiement de fonds
  • F - Transfert pour les paris de jeux de hasard
  • G - Paiement dans les jeux de hasard en ligne
  • H - Retrait de fonds (Cash Out). Retrait de fonds par un agent.
  • I - Paiements gouvernementaux
  • J - Transfert d'argent initié par la banque
  • L - Transfert à des fins de remboursement des factures de carte de crédit
  • O - Transfert à des fins de paiement de dette
  • P - Transfert de carte à carte de propriétaires différents
  • W - Transfert sur son propre compte de portefeuille numérique par étapes pour le paiement
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.
  • Si feeInput est supérieur à 0, l'attribut externalFee sera ajouté au TransactionModel, et lors de l'appel verifyP2P.do la demande de vérification ne sera pas envoyée au processing. Les tags suivants seront ajoutés à la demande au processing, s'ils ont été transmis dans les paramètres supplémentaires de la demande d'enregistrement : acc_number, contract, fio_sender, reference, fio_reciever.
  • Si feeInput n'est pas transmis ou est égal à 0, alors une demande standard registerP2P.do sera exécutée (l'attribut externalFee ne sera pas ajouté au TransactionModel, et lors de l'appel verifyP2P.do la demande de vérification sera envoyée 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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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 :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
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 :
  • 01 - livraison possible ;
  • 02 - livraison future
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 :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite des affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Titre de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :


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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite des affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Titre de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan ou seToken.

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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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.

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 :
  • true- la création de liaison après l'exécution du paiement est désactivée (la liaison est l'identifiant du client transmis dans la demande d'enregistrement de commande, qui après la demande de paiement sera supprimé des détails de la commande) ;
  • false – en cas de paiement réussi, une liaison peut être créée (sous réserve du respect des conditions nécessaires). C'est la valeur par défaut.
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) :
  • Dans le paramètre payerName - nom de l'expéditeur de l'argent.
  • Dans le paramètre payerAddress - adresse de l'expéditeur.
  • Dans le paramètre payerCity - ville de l'expéditeur.
  • Dans le paramètre payerCountry - pays de l'expéditeur sous forme de code ISO 3166-1 alpha-3 (code à trois lettres).
  • Dans le paramètre payerPostalCode - code postal de l'expéditeur.
  • Dans le paramètre payerState - région de l'expéditeur.
Pour le système de paiement Visa dans la demande de transfert d'argent de carte à carte il est également nécessaire de transmettre dans le paramètre params les informations suivantes (le format des valeurs est déterminé par la méthode de traitement des données utilisée) :
  • Dans le paramètre recipientName - nom du destinataire de l'argent.

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 :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
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 :
  • 01 - livraison possible ;
  • 02 - livraison future
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 :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite des affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Titre de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 :
  • true – pour le jeton déchiffré ;
  • false – pour le jeton chiffré.

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.
  • ECI=01 ou ECI=06 - le marchand prend en charge 3-D Secure, la carte de paiement ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
  • ECI=02 ou ECI=05 - le marchand et la carte de paiement prennent en charge 3-D Secure ;
  • ECI=07 - le marchand ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
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 :
  • 0 - Authentification SSL
  • 3 - Authentification forte du client (SCA) avec 3DS 2
  • 4 - Authentification basée sur les risques (RBA) avec 3DS 2
  • 5 - Tentative d'authentification 3DS 2
  • 7 - Authentification 3RI avec 3DS 2
  • 8 - Tentative d'authentification 3RI avec 3DS 2
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 : bindingId, pan ou seToken.

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 : bindingId, pan ou seToken.

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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
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 :
  • 0 - en cas de succès ;
  • 1 - en cas d'erreur.
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 :
  • est copié de la transaction originale
  • est transmis dans le champ Original Network Reference Number
  • permet au système de paiement de lier la nouvelle opération à l'originale
Ce paramètre est présent dans la réponse uniquement si la requête 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 :
  • true- la création de liaison après l'exécution du paiement est désactivée (la liaison est l'identifiant du client transmis dans la demande d'enregistrement de commande, qui après la demande de paiement sera supprimé des détails de la commande) ;
  • false – en cas de paiement réussi, une liaison peut être créée (sous réserve du respect des conditions nécessaires). C'est la valeur par défaut.
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) :
  • Dans le paramètre payerName - nom de l'expéditeur de l'argent.
  • Dans le paramètre payerAddress - adresse de l'expéditeur.
  • Dans le paramètre payerCity - ville de l'expéditeur.
  • Dans le paramètre payerCountry - pays de l'expéditeur sous forme de code ISO 3166-1 alpha-3 (code à trois lettres).
  • Dans le paramètre payerPostalCode - code postal de l'expéditeur.
  • Dans le paramètre payerState - région de l'expéditeur.
Pour le système de paiement Visa dans la demande de transfert d'argent de carte à carte il est également nécessaire de transmettre dans le paramètre params les informations suivantes (le format des valeurs est déterminé par la méthode de traitement des données utilisée) :
  • Dans le paramètre recipientName - nom du destinataire de l'argent.

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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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.
  • ECI=01 ou ECI=06 - le marchand prend en charge 3-D Secure, la carte de paiement ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
  • ECI=02 ou ECI=05 - le marchand et la carte de paiement prennent en charge 3-D Secure ;
  • ECI=07 - le marchand ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
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 :
  • 0 - Authentification SSL
  • 3 - Authentification forte du client (SCA) avec 3DS 2
  • 4 - Authentification basée sur les risques (RBA) avec 3DS 2
  • 5 - Tentative d'authentification 3DS 2
  • 7 - Authentification 3RI avec 3DS 2
  • 8 - Tentative d'authentification 3RI avec 3DS 2
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 : bindingId, pan ou seToken.

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 : bindingId, pan ou seToken.

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 : bindingId, pan ou seToken.

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 :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
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 :
  • 01 - livraison possible ;
  • 02 - livraison future
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 :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite des affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Titre de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
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 :
  • 0 - en cas de succès ;
  • 1 - en cas d'erreur.
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 :
  • est copié de la transaction originale
  • est transmis dans le champ Original Network Reference Number
  • permet au système de paiement de lier la nouvelle opération à l'originale
Ce paramètre est présent dans la réponse uniquement si la requête 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.

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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
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 :
  • A - Transfert de carte à carte d'un même propriétaire (de compte à compte)
  • B - Transfert dans le but d'acquérir de la cryptomonnaie
  • C - Transfert à des fins d'achat de cryptomonnaie
  • D - Paiement de fonds
  • F - Transfert pour les paris de jeux de hasard
  • G - Paiement dans les jeux de hasard en ligne
  • H - Retrait de fonds (Cash Out). Retrait de fonds par un agent.
  • I - Paiements gouvernementaux
  • J - Transfert d'argent initié par la banque
  • L - Transfert à des fins de remboursement des factures de carte de crédit
  • O - Transfert à des fins de paiement de dette
  • P - Transfert de carte à carte de propriétaires différents
  • W - Transfert sur son propre compte de portefeuille numérique par étapes pour le paiement
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 :
  • true- la création de liaison après l'exécution du paiement est désactivée (la liaison est l'identifiant du client transmis dans la demande d'enregistrement de commande, qui après la demande de paiement sera supprimé des détails de la commande) ;
  • false – en cas de paiement réussi, une liaison peut être créée (sous réserve du respect des conditions nécessaires). C'est la valeur par défaut.
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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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 :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
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 :
  • 01 - livraison possible ;
  • 02 - livraison future
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 :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 :
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite des affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Titre de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 : bindingId, pan+expirationYear+expirationMonth ou seToken.

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 :
  • true – pour le jeton déchiffré ;
  • false – pour le jeton chiffré.

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.
  • ECI=01 ou ECI=06 - le marchand prend en charge 3-D Secure, la carte de paiement ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
  • ECI=02 ou ECI=05 - le marchand et la carte de paiement prennent en charge 3-D Secure ;
  • ECI=07 - le marchand ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
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 :
  • 0 - Authentification SSL
  • 3 - Authentification forte du client (SCA) avec 3DS 2
  • 4 - Authentification basée sur les risques (RBA) avec 3DS 2
  • 5 - Tentative d'authentification 3DS 2
  • 7 - Authentification 3RI avec 3DS 2
  • 8 - Tentative d'authentification 3RI avec 3DS 2
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 : bindingId, pan ou seToken.

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 : bindingId, pan ou seToken.

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 : bindingId, pan ou seToken.

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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
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 :
  • 0 - en cas de succès ;
  • 1 - en cas d'erreur.
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 :
  • est copié de la transaction originale
  • est transmis dans le champ Original Network Reference Number
  • permet au système de paiement de lier la nouvelle opération à l'originale
Ce paramètre est présent dans la réponse uniquement si la requête 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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour laquelle il est nécessaire de vérifier le paramètre errorMesage pour obtenir des informations plus détaillées.
Peut être absent si le résultat n'a pas causé d'erreur.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
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 :
  • 0 - en cas de succès ;
  • 1 - en cas d'erreur.
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 :
  • est copié de la transaction originale
  • est transmis dans le champ Original Network Reference Number
  • permet au système de paiement de lier la nouvelle opération à l'originale
Ce paramètre est présent dans la réponse uniquement si la requête 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 :
  • P2P_VERIFY - demande le montant de la commission ;
  • P2P_DEBIT - débite l'argent ;
  • P2P_CREDIT - crédite l'argent ;
  • P2P_DEBIT_REVERSAL - annulation du débit ;
  • P2P_CREDIT_REVERSAL — annulation du crédit ;
  • P2P_TRANSFER - transfert d'argent de carte à carte ;
  • P2P_TRANSFER_REVERSAL - retour automatique en cas d'erreur lors du transfert.
    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 :
    • 0 - en cas de succès ;
    • 1 - en cas d'erreur.
    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 :

    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&amp;lang=en

    Catégories:
    eCommerce API V1
    Catégories
    Résultats de recherche