Transactions OCT
Informations générales sur OCT
OCT (Original Credit Transaction) – type spécial de transactions pour le crédit de fonds au bénéficiaire en temps réel.
Pour toutes les transactions OCT, les règles suivantes s'appliquent :
- Dans la demande d'enregistrement de commande, il est nécessaire de transmettre le paramètre
featuresavec la valeurWITHOUT_FROM_CARD. - Dans la demande de paiement, les données de la carte de crédit sont spécifiées, c'est-à-dire
toCard.
Scénario de traitement de transaction OCT
- Le porteur de carte (client) interagit avec la boutique en ligne pour créer une commande.
- 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 transfert, la devise, le numéro de commande dans le système du vendeur et l'URL de retour pour le client.
- La passerelle de paiement en réponse à la demande d'enregistrement retourne un identifiant unique de commande dans le système de paiement et l'URL pour rediriger le client vers le formulaire de collecte des données de carte.
- Le système de la boutique en ligne transmet l'URL de redirection, reçue à l'Étape 3, au navigateur du client.
- Le client remplit le formulaire, et les données sont envoyées au serveur de la passerelle de paiement.
- La passerelle de paiement effectue le transfert de fonds via performP2P.do.
- Quand l'argent est transféré, la passerelle de paiement envoie l'URL de retour au navigateur web du client (l'URL avait été spécifiée lors de l'enregistrement de commande par la boutique en ligne à l'Étape 2).
- Le navigateur web du client demande les résultats du transfert d'argent à la boutique en ligne.
- Le système de la boutique en ligne demande des informations sur le statut de commande à la passerelle de paiement – getP2PStatus.do.
- La passerelle de paiement retourne le statut de commande.
- Le système de la boutique en ligne montre au client le résultat du paiement.
Appels API
Pour les intégrations OCT, il est nécessaire que les appels API soient signés. Les informations sur la signature des requêtes peuvent être trouvées dans notre Guide API.
Enregistrement de commande P2P
Pour le traitement d'une commande de transfert d'argent de carte à carte, utilisez la demande https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do.
Lors de l'exécution de la demande, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de la demande
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Obligatoire | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Obligatoire | returnUrl |
String [1..512] | Adresse vers laquelle l'utilisateur doit être redirigé en cas de paiement réussi. L'adresse doit être spécifiée complètement, y compris le protocole utilisé (par exemple, https://mybestmerchantreturnurl.com au lieu de mybestmerchantreturnurl.com). Sinon, l'utilisateur sera redirigé vers une adresse du type suivant : https://dev.bpcbt.com/payment/<merchant_address>. |
| Facultatif | failUrl |
String [1..512] | Adresse vers laquelle il faut rediriger l'utilisateur en cas de paiement échoué. L'adresse doit être spécifiée entièrement, y compris le protocole utilisé (par exemple, https://mybestmerchantreturnurl.com au lieu de mybestmerchantreturnurl.com). Sinon, l'utilisateur sera redirigé vers une adresse du type suivant : https://dev.bpcbt.com/payment/<merchant_address>. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Facultatif | clientId |
String [0..255] | Numéro du client (ID) dans le système du marchand — jusqu'à 255 caractères. Utilisé pour la mise en œuvre de la fonctionnalité de liaisons. Peut être retourné dans la réponse, si le marchand est autorisé à créer des liaisons. L'indication de ce paramètre lors du traitement des paiements par liaison est obligatoire. Dans le cas contraire, le paiement sera impossible. |
| Facultatif | merchantLogin |
String [1..255] | Pour enregistrer une commande au nom d'un autre marchand, spécifiez son login (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de consulter les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Facultatif | dynamicCallbackUrl |
String [1..512] | Paramètre pour transmettre l'adresse dynamique pour recevoir les notifications callback "de paiement" pour la commande, activées pour le marchand (autorisation réussie, débit réussi, remboursement, annulation, rejet du paiement par timeout, rejet du paiement card present). Les notifications callback "non liées au paiement" (activation/désactivation de liaison, création de liaison), seront envoyées à l'adresse callback statique. |
| Facultatif | sessionTimeoutSecs |
Integer [1..9] | Durée de vie de la commande en secondes. Si le paramètre n'est pas défini, la valeur spécifiée dans les paramètres du marchand sera utilisée, ou le temps par défaut (1200 secondes = 20 minutes). Si le paramètre expirationDate est présent dans la requête, alors la valeur du paramètre sessionTimeoutSecs n'est pas prise en compte. |
| Facultatif | sessionExpiredDate |
String | Date et heure d'expiration de la commande. Format : yyyy-MM-ddTHH:mm:ss.Si ce paramètre n'est pas transmis dans la requête, alors le paramètre sessionTimeoutSecs est utilisé pour déterminer le temps d'expiration de la commande. |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Facultatif | bindingId |
String [1..255] | Identifiant d'une liaison déjà existante (identifiant de carte tokenisée par la passerelle). Il ne peut être utilisé que si le marchand a l'autorisation de travailler avec les liaisons. Si ce paramètre est transmis dans cette requête, cela signifie que :
|
| Facultatif | creditBindingId |
String [0..255] | Identifiant de liaison de carte pour le crédit. Utilisé lors des transferts de carte à carte, lorsque la carte du destinataire est connue à l'avance. Ce paramètre doit d'abord être transmis dans la demande d'enregistrement de paiement (registerP2P.do - ici aussi doit être transmis le paramètre clientId), puis dans la demande de transfert de fonds par liaison (performP2PByBinding.do - la valeur du paramètre creditBindingId, transmise dans registerP2P.do, doit être transmise dans le paramètre bindingId dans le bloc toCard). |
| Obligatoire | transactionTypeIndicator |
String | Utilisé dans les types de transactions unidirectionnelles. Les valeurs suivantes sont possibles :
|
| Obligatoire | features |
Object | Conteneur pour le paramètre feature, obligatoire pour les opérations unidirectionnelles.Si l'opération OCT (transfert de compte vers carte) est effectué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 stockage ultérieur, transmis sous la forme suivante : "params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].Ces champs peuvent être transmis au système de traitement de la banque pour affichage ultérieur dans les registres de la banque. |
| Facultatif | shippingPayerData |
Object | Objet contenant les données de livraison au client. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | preOrderPayerData |
Object | Objet contenant les données de précommande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | orderPayerData |
Object | Objet contenant les données sur le payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | billingAndShippingAddressMatchIndicator |
String [1] | Indicateur de correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Valeurs possibles :
|
| Conditionnel | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour la vérification de l'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. Doit avoir été inclus soit dans la demande registerP2P.do, soit dans la demande 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 du côté de la passerelle de paiement. Doit avoir été inclus soit dans la demande registerP2P.do, soit dans la demande 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). |
| Conditionnel | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les virements P2P (AFT+OCT) en utilisant Mastercard. Il est rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante. Obligatoire, si un Mastercard Money Funding Payment a été exécuté précédemment et qu'un Unique Transaction Reference a été formé et envoyé.
|
| Facultatif | transactionPurpose |
String | Objectif de la transaction (utilisé pour les transactions OCT utilisant Mastercard). Valeurs possibles :
|
| Facultatif | serviceProcessingType |
String | Type de service de traitement (utilisé pour les transactions OCT utilisant Visa). Indicateur de service qui indique au système Visa comment traiter la transaction au niveau du traitement. Valeurs possibles :
|
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique chez la Banque Émettrice. |
| Facultatif | billingCountry |
String [0..50] | Pays enregistré pour une 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. |
| Facultatif | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour une carte spécifique chez la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. |
| 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. |
| Facultatif | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. |
| Facultatif | payerFirstName |
String [1..35] | Prénom de l'expéditeur. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..100] | Numéro du document d'identité fourni (par exemple, passeport) de l'expéditeur. |
| Facultatif | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. |
| Condition | payerAccountNumberType |
String [1..20] | Type de numéro de compte du payeur. Obligatoire pour les transactions OCT utilisant Mastercard. Valeurs possibles :
|
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. |
| Facultatif | 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 à deux/trois lettres du pays. |
| 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. |
| Facultatif | recipientAccount |
String [0..32] | Numéro de compte du destinataire. |
| Facultatif | recipientAccountNumberType |
Integer [1..2] | Type de compte du destinataire. Valeurs possibles :
|
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | formUrl |
String [1..512] | URL du formulaire de paiement vers lequel l'acheteur sera redirigé. L'URL n'est pas retournée si l'enregistrement de la commande a échoué en raison d'une erreur spécifiée dans errorCode. |
| Facultatif | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
Exemples
Exemple de demande 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",
"transactionTypeIndicator": "A",
"features":{
"feature":["WITHOUT_FROM_CARD"]
}
}'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 le virement d'argent, utilisez la requête https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2P.do.
La structure de la requête suppose la présence du bloc toCard pour transmettre les attributs de la carte pour le crédit.
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. |
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| 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 | amount |
String [0..12] | Montant du virement en unités minimales de devise (par exemple, en kopecks). 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 | 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 | 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. |
| Obligatoire | toCard |
Object | Bloc avec attributs de la carte de crédit. Voir paramètres imbriqués. |
Le bloc toCard comprend les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | pan |
String [1..19] | Numéro de carte pour le crédit des fonds monétaires. |
| 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 seToken voir ici. |
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 |
|---|---|---|---|
| Facultatif | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique chez la Banque Émettrice. |
| Facultatif | billingCountry |
String [0..50] | Pays enregistré pour une 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. |
| Facultatif | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour une carte spécifique chez la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. |
| 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. |
| Facultatif | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. |
| Facultatif | payerFirstName |
String [1..35] | Prénom de l'expéditeur. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..100] | Numéro du document d'identité fourni (par exemple, passeport) de l'expéditeur. |
| Facultatif | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. |
| Condition | payerAccountNumberType |
String [1..20] | Type de numéro de compte du payeur. Obligatoire pour les transactions OCT utilisant Mastercard. Valeurs possibles :
|
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. |
| Facultatif | 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 à deux/trois lettres du pays. |
| 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. |
| Facultatif | recipientAccount |
String [0..32] | Numéro de compte du destinataire. |
| Facultatif | recipientAccountNumberType |
Integer [1..2] | Type de compte du destinataire. Valeurs possibles :
|
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
Le bloc feeDescriptionList comprend les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| 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 -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",
"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 données de paiement sauvegardées
Pour obtenir le montant de la commission lors du virement de fonds par données de paiement sauvegardées, utilisez la demande https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2PByBinding.do.
Lors de l'exécution de la demande, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de 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. |
| 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 | toCard |
Object | Bloc avec les attributs de la carte de crédit. Voir paramètres imbriqués. |
Le bloc toCard inclut les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | bindingId |
String [1..255] | Identifiant de liaison créé lors du paiement de la commande ou utilisé pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. |
| Condition | pan |
String [1..19] | Numéro de carte pour le crédit des fonds monétaires. |
| 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 seToken voir ici. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | 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 demande
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",
"toCard": {
"cardholderName": "IVAN IVANOV",
"cvc": "123",
"expirationMonth": 12,
"expirationYear": 2024,
"pan": "5555555555555599"
},
"amount": 1000,
"currency": "978",
"clientId": "123"
}
}'Exemple de réponse
{
"errorCode" : 0,
"errorMessage" : "Successful",
"feeDescriptionList" : [ {
"feeAmount" : 10,
"feeCurrency" : "978",
"feeDescription" : "Acquirer fee"
} ]
}Virement P2P
Pour effectuer un virement monétaire 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 toCard pour transmettre les attributs de carte pour le crédit.
Paramètres de 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. |
| 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 minimales de devise (par exemple, en kopecks). 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 | Dans le cas d'un virement monétaire avec des données uniquement pour une carte, il est nécessaire de transmettre dans ce paramètre la valeur correspondante :WITHOUT_FROM_CARD - sans indication de carte pour le débit des fonds. |
| Facultatif | amountInput |
Integer [0..12] | Montant du virement dans les unités monétaires minimales (par exemple, en centimes). Si un montant est spécifié dans ce paramètre, le virement sera effectué pour ce montant (indépendamment du montant transmis dans la demande de traitement de commande). |
| Facultatif | captcha |
String | CAPTCHA (texte destiné à distinguer la saisie humaine de la saisie machine) |
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| Facultatif | threeDSSDKEncData |
String | Données chiffrées sur l'appareil. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKReferenceNumber |
String | Identifiant officiel 3DS2 SDK |
| Facultatif | threeDSSDKEphemPubKey |
String | Partie publique de la clé éphémère. Requis pour établir une session avec ACS. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKAppId |
String | Identifiant unique du SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSSDKTransId |
String | Identifiant unique de la transaction dans le SDK. Le paramètre est obligatoire pour le SDK. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
| Condition | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Condition | threeDSVer2MdOrder |
String [1..36] | Numéro de commande qui a été enregistré dans la première partie de la demande dans le cadre de l'opération 3DS2. Obligatoire pour l'authentification 3DS. Si ce paramètre est présent dans la demande, alors mdOrder est utilisé, qui est transmis dans le présent paramètre. Dans ce cas, l'enregistrement de la commande n'a pas lieu, mais le paiement de la commande se produit immédiatement.Ce paramètre est transmis uniquement lors de l'utilisation des méthodes de paiement instantané, c'est-à-dire, lorsque la commande est enregistrée et payée dans le cadre d'une seule demande. |
| Facultatif | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Condition | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Facultatif | mcc |
Integer [4] | Merchant Category Code (code de catégorie du marchand). Pour transmettre ce paramètre, une autorisation spéciale est nécessaire. Seules les valeurs de la liste MCC autorisée peuvent être utilisées. Pour obtenir des informations plus détaillées, contactez le support technique. |
| Condition | originalSchemeTransactionId |
String [1..22] | Identifiant de la transaction originale réussie dans Mastercard. Obligatoire lors de l'utilisation des données de paiement sauvegardées du marchand dans les virements par données de paiement sauvegardées. |
| Facultatif | params |
Object | Champs d'informations supplémentaires pour 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 affichage ultérieur dans les registres de la banque. |
| 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 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. |
| 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. Doit avoir été inclus soit dans la requête registerP2P.do, soit dans la requête performP2P.do. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec les attributs de la carte de crédit. Voir paramètres imbriqués. |
| Condition | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les virements P2P (AFT+OCT) en utilisant Mastercard. Il est rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante. Obligatoire, si un Mastercard Money Funding Payment a été exécuté précédemment et qu'un Unique Transaction Reference a été formé et envoyé.
|
| Facultatif | transactionPurpose |
String | Objectif de la transaction (utilisé pour les transactions OCT utilisant Mastercard). Valeurs possibles :
|
| Facultatif | serviceProcessingType |
String | Type de service de traitement (utilisé pour les transactions OCT utilisant Visa). Indicateur de service qui indique au système Visa comment traiter la transaction au niveau du traitement. Valeurs possibles :
|
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique chez la Banque Émettrice. |
| Facultatif | billingCountry |
String [0..50] | Pays enregistré pour une 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. |
| Facultatif | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour une carte spécifique chez la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. |
| 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. |
| Facultatif | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. |
| Facultatif | payerFirstName |
String [1..35] | Prénom de l'expéditeur. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..100] | Numéro du document d'identité fourni (par exemple, passeport) de l'expéditeur. |
| Facultatif | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. |
| Condition | payerAccountNumberType |
String [1..20] | Type de numéro de compte du payeur. Obligatoire pour les transactions OCT utilisant Mastercard. Valeurs possibles :
|
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. |
| Facultatif | 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 à deux/trois lettres du pays. |
| 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. |
| Facultatif | recipientAccount |
String [0..32] | Numéro de compte du destinataire. |
| Facultatif | recipientAccountNumberType |
Integer [1..2] | Type de compte du destinataire. Valeurs possibles :
|
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Le bloc toCard inclut les paramètres suivants :
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Condition | pan |
String [1..19] | Numéro de carte pour le crédit des fonds monétaires. |
| 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 seToken voir ici. |
Lors de l'authentification par protocole 3DS2, les paramètres suivants sont également transmis :
| Obligation | 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
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Facultatif | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | info |
String | Résultat de la tentative de transfert de fonds. Valeur en cas de transfert réussi : "Votre paiement est traité, redirection en cours..." Valeur en cas d'erreur : "Redirection en cours..." |
| Condition | acsUrl |
String [1..512] | URL pour la redirection vers ACS. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Pour plus de détails, voir Redirection vers ACS. |
| Condition | paReq |
String [1..255] | PAReq (Payment Authentication Request) — message qui doit être envoyé à ACS avec la redirection. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est nécessaire. 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. |
| Condition | statusResponse |
Object | Paramètres de 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. |
| Facultatif | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les transferts P2P (AFT+OCT) en utilisant Mastercard. Il est automatiquement rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante (générée automatiquement par la passerelle de paiement) ou par le paramètre correspondant reçu dans la demande OCT. |
Lors de l'authentification par protocole 3DS2 en réponse à la première requête arrivent les paramètres suivants :
| Obligation | 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 requête répétée de paiement et la nécessité de rediriger le client vers ACS lors de l'authentification par protocole 3DS2 :
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Condition | acsUrl |
String [1..512] | URL pour la redirection vers ACS. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Pour plus de détails, voir Redirection vers ACS. |
| Condition | packedCReq |
String | Données challenge request empaquetées. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. Pour plus de détails, voir Redirection vers ACS. |
Paramètres du bloc statusResponse :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la réalisation de la première transaction (par exemple, un achat). Lors de l'exécution de l'opération inverse (remboursement, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
Pour terminer la transaction, utilisez la méthode /p2p/finishThreeDsVer2.do.
Exemples
Exemple de requête OCT
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",
"toCard" : {
"pan" : "4111111111111111"
}
}'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"
}Virement P2P par données de paiement sauvegardées
Pour effectuer un virement de carte à carte à l'aide de données de paiement sauvegardées, 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 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 | 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 à afficher 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. |
| Facultatif | type |
String | En cas de virement d'argent avec des données pour une seule carte seulement, 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. |
| 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. |
| Conditionnel | 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. |
| Conditionnel | 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 :
|
| Conditionnel | 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. |
| Conditionnel | originalSchemeTransactionId |
String [1..22] | Identifiant de la transaction originale réussie dans Mastercard. Obligatoire lors de l'utilisation des données de paiement sauvegardées du marchand dans les virements par données de paiement sauvegardées. |
| Facultatif | params |
Object | Champs d'informations supplémentaires pour stockage ultérieur, transmis sous la forme suivante : "params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].Ces champs peuvent être transmis au traitement de la banque pour affichage ultérieur dans les registres de la banque. |
| Facultatif | shippingPayerData |
Object | Objet contenant les données de livraison au client. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | preOrderPayerData |
Object | Objet contenant les données de précommande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | orderPayerData |
Object | Objet contenant les données sur le payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | billingAndShippingAddressMatchIndicator |
String [1] | Indicateur de correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Valeurs possibles :
|
| Conditionnel | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour passer la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur côté passerelle de paiement. 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. Voir paramètres imbriqués. |
| Obligatoire | toCard |
Object | Bloc avec les attributs de la carte de crédit. Voir paramètres imbriqués. |
| Conditionnel | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les virements P2P (AFT+OCT) en utilisant Mastercard. Il est rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante. Obligatoire, si un Mastercard Money Funding Payment a été exécuté précédemment et qu'un Unique Transaction Reference a été formé et envoyé.
|
| Facultatif | transactionPurpose |
String | Objectif de la transaction (utilisé pour les transactions OCT utilisant Mastercard). Valeurs possibles :
|
| Facultatif | serviceProcessingType |
String | Type de service de traitement (utilisé pour les transactions OCT utilisant Visa). Indicateur de service qui indique au système Visa comment traiter la transaction au niveau du traitement. Valeurs possibles :
|
Le bloc toCard inclut les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | bindingId |
String [1..255] | Identifiant de liaison créé lors du paiement de la commande ou utilisé pour le paiement. Disponible uniquement si le vendeur est autorisé à créer des liaisons. |
| Conditionnel | pan |
String [1..19] | Numéro de carte pour le crédit des fonds monétaires. |
| 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. |
| Conditionnel | 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 seToken voir ici. |
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique chez la Banque Émettrice. |
| Facultatif | billingCountry |
String [0..50] | Pays enregistré pour une 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. |
| Facultatif | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour une carte spécifique chez la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. |
| 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. |
| Facultatif | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. |
| Facultatif | payerFirstName |
String [1..35] | Prénom de l'expéditeur. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..100] | Numéro du document d'identité fourni (par exemple, passeport) de l'expéditeur. |
| Facultatif | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. |
| Condition | payerAccountNumberType |
String [1..20] | Type de numéro de compte du payeur. Obligatoire pour les transactions OCT utilisant Mastercard. Valeurs possibles :
|
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. |
| Facultatif | 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 à deux/trois lettres du pays. |
| 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. |
| Facultatif | recipientAccount |
String [0..32] | Numéro de compte du destinataire. |
| Facultatif | recipientAccountNumberType |
Integer [1..2] | Type de compte du destinataire. Valeurs possibles :
|
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Lors de l'authentification par 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
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | info |
String | Résultat de la tentative de transfert de fonds. Valeur en cas de transfert réussi : "Votre paiement est traité, redirection en cours..." Valeur en cas d'erreur : "Redirection en cours..." |
| Conditionnel | acsUrl |
String [1..512] | URL pour la redirection vers ACS. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Pour plus de détails, voir Redirection vers ACS. |
| Conditionnel | paReq |
String [1..255] | PAReq (Payment Authentication Request) — message qui doit être envoyé à ACS avec la redirection. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est nécessaire. 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. |
| Conditionnel | 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. |
| Conditionnel | statusResponse |
Object | Paramètres de statut de réponse. Ce bloc est retourné seulement si vous avez activé le paramètre correspondant. Pour activer cette fonctionnalité, contactez le support technique. Voir paramètres imbriqués. |
| Facultatif | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les transferts P2P (AFT+OCT) en utilisant Mastercard. Il est automatiquement rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante (générée automatiquement par la passerelle de paiement) ou par le paramètre correspondant reçu dans la demande OCT. |
Lors de l'authentification par protocole 3DS2, en réponse à la première requête, les paramètres suivants arrivent :
| 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 nouvelle requête de paiement et la nécessité de rediriger le client vers ACS lors de l'authentification par protocole 3DS2 :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | acsUrl |
String [1..512] | URL pour la redirection vers ACS. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Pour plus de détails, voir Redirection vers ACS. |
| Conditionnel | packedCReq |
String | Données challenge request empaquetées. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. Pour plus de détails, voir Redirection vers ACS. |
Paramètres du bloc statusResponse :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la réalisation de la première transaction (par exemple, un achat). Lors de l'exécution de l'opération inverse (remboursement, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
Exemples
Exemple de requête
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{
"amountInput" : 1000,
"toCard": {
"cardholderName": "TEST CARDHOLDER",
"expirationMonth": 12,
"expirationYear": 2029,
"pan": "5555555555555599"
},
"orderId" : "3dbaf8bb-1d68-76b3-b4e6-784700f26b04",
"password" : "test_user_password",
"type" : "WITHOUT_FROM_CARD",
"username" : "test_user"
}'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
}Virement instantané P2P
Pour effectuer un virement instantané P2P sans appel de 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 performP2P.do suppose la présence du bloc toCard pour transmettre les attributs de la carte pour le crédit.
Paramètres de la demande
| 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 | 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 :
|
| Condition | originalSchemeTransactionId |
String [1..22] | Identifiant de la transaction originale réussie dans Mastercard. Obligatoire lors de l'utilisation des données de paiement sauvegardées du marchand dans les virements par données de paiement sauvegardées. |
| 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 minimales de devise (par exemple, en kopecks). 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 | 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 stockage ultérieur, transmis de la manière suivante : "params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].Ces champs peuvent être transmis au traitement de la banque pour affichage ultérieur dans les registres de 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 suivantes sont possibles :
|
| Obligatoire | features |
Object | Conteneur pour le paramètre feature, obligatoire pour les opérations unidirectionnelles.Si une opération OCT (virement de compte vers carte) est effectué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 sur une seule carte, il faut transmettre dans ce paramètre la valeur correspondante :WITHOUT_FROM_CARD - sans indication de carte pour le débit des fonds. |
| 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 :
|
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). Utilisé pour les transactions AFT. Si ce paramètre est spécifié, la transaction sera traitée en fonction de vos paramètres dans la passerelle de paiement : soit une opération SSL forcée sera exécutée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision sur la conduite de l'opération avec ou sans authentification 3DS (pour des informations détaillées, contactez notre service d'assistance). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| 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 | 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 du payeur de la commande. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Voir paramètres imbriqués. |
| Facultatif | billingAndShippingAddressMatchIndicator |
String [1] | Indicateur de correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison. Ce paramètre est utilisé pour l'authentification 3DS ultérieure du client. Valeurs possibles :
|
| Condition | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour passer la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le vendeur du côté de la passerelle de paiement. Voir paramètres imbriqués. |
| Condition | billingRecipientData |
Object | Bloc avec les données du 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 | 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). |
| Condition | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les virements P2P (AFT+OCT) en utilisant Mastercard. Il est rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante. Obligatoire, si un Mastercard Money Funding Payment a été exécuté précédemment et qu'un Unique Transaction Reference a été formé et envoyé.
|
| Facultatif | transactionPurpose |
String | Objectif de la transaction (utilisé pour les transactions OCT utilisant Mastercard). Valeurs possibles :
|
| Facultatif | serviceProcessingType |
String | Type de service de traitement (utilisé pour les transactions OCT utilisant Visa). Indicateur de service qui indique au système Visa comment traiter la transaction au niveau du traitement. Valeurs possibles :
|
Valeurs possibles du paramètre tii :
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Données de carte sauvegardées après la transaction | Commentaire |
|---|---|---|---|---|---|---|
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisies par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non programmé (CIT) | Subséquente | Acheteur | Le client sélectionne la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
Description des paramètres de l'objet shippingPayerData :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | shippingCity |
String [1..50] | Ville du client (à partir de l'adresse de livraison) |
| Facultatif | shippingCountry |
String [1..50] | Pays du client |
| Facultatif | shippingAddressLine1 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine2 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingAddressLine3 |
String [1..50] | Adresse principale du client (à partir de l'adresse de livraison) |
| Facultatif | shippingPostalCode |
String [1..16] | Code postal du client pour la livraison |
| Facultatif | shippingState |
String [1..50] | État/région de l'acheteur (à partir de l'adresse de livraison) |
| Facultatif | shippingMethodIndicator |
Integer [2] | Indicateur du mode de livraison. Valeurs possibles :
|
| Facultatif | deliveryTimeframe |
Integer [2] | Délai de livraison de la marchandise. Valeurs possibles :
|
| Facultatif | deliveryEmail |
String [1..254] | Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront). |
Description des paramètres de l'objet preOrderPayerData :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | preOrderDate |
String [10] | Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ. |
| Facultatif | preOrderPurchaseInd |
Integer [2] | Indicateur de placement par le client d'une commande pour une livraison disponible ou future. Valeurs possibles :
|
| Facultatif | reorderItemsInd |
Integer [2] | Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande. Valeurs possibles :
|
Description des paramètres de l'objet orderPayerData.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | homePhone |
String [7..15] | Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | workPhone |
String [7..15] | Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
|
| Facultatif | mobilePhone |
String [7..15] | Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique chez la Banque Émettrice. |
| Facultatif | billingCountry |
String [0..50] | Pays enregistré pour une 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. |
| Facultatif | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour une carte spécifique chez la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. |
| 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. |
| Facultatif | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. |
| Facultatif | payerFirstName |
String [1..35] | Prénom de l'expéditeur. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..100] | Numéro du document d'identité fourni (par exemple, passeport) de l'expéditeur. |
| Facultatif | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. |
| Condition | payerAccountNumberType |
String [1..20] | Type de numéro de compte du payeur. Obligatoire pour les transactions OCT utilisant Mastercard. Valeurs possibles :
|
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. |
| Facultatif | 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 à deux/trois lettres du pays. |
| 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. |
| Facultatif | recipientAccount |
String [0..32] | Numéro de compte du destinataire. |
| Facultatif | recipientAccountNumberType |
Integer [1..2] | Type de compte du destinataire. Valeurs possibles :
|
| Obligatoire | recipientLastName |
String [0..35] | Nom de famille du destinataire. |
| Obligatoire | recipientFirstName |
String [0..35] | Nom du destinataire. |
| Facultatif | recipientMiddleName |
String [0..35] | Nom patronymique du destinataire. |
| Facultatif | recipientCombinedName |
String [0..99] | Nom complet du destinataire. |
| Facultatif | recipientIdType |
String [1..8] | Type de document d'identification fourni du destinataire. Valeurs possibles :
|
| Facultatif | recipientIdNumber |
String [1..99] | Numéro du document d'identification fourni du destinataire. |
| Facultatif | recipientBirthday |
String [1..20] | Date de naissance du destinataire au format YYYYMMDD. |
Le bloc toCard comprend les paramètres suivants :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | pan |
String [1..19] | |
| 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 seToken voir ici. |
Lors de l'authentification par protocole 3DS2, les paramètres suivants sont également transmis :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSVer2FinishUrl |
String [1..512] | URL vers laquelle le client doit être redirigé après l'authentification sur le serveur ACS. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | info |
String | Résultat de la tentative de transfert de fonds. Valeur en cas de transfert réussi : "Votre paiement est traité, redirection en cours..." Valeur en cas d'erreur : "Redirection en cours..." |
| Facultatif | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | acsUrl |
String [1..512] | URL pour la redirection vers ACS. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. 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. |
| 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. |
| Facultatif | debitTransactionReference |
String [1..19] | Référence à l'opération AFT. Ce paramètre est utilisé pour les opérations OCT pour les transferts P2P (AFT+OCT) en utilisant Mastercard. Il est automatiquement rempli par le paramètre statusResponse.debitTransactionReference de la transaction AFT correspondante (générée automatiquement par la passerelle de paiement) ou par le paramètre correspondant reçu dans la demande OCT. |
Paramètres du bloc statusResponse :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la réalisation de la première transaction (par exemple, un achat). Lors de l'exécution de l'opération inverse (remboursement, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
Lors de l'authentification par protocole 3DS2, en réponse à la première demande arrivent les paramètres suivants :
| 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). |
Ci-dessous sont présentés les paramètres qui doivent être présents dans la réponse, après demande répétée de paiement et nécessité de rediriger le client vers ACS lors de l'authentification par protocole 3DS2 :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | acsUrl |
String [1..512] | URL pour la redirection vers ACS. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Pour plus de détails, voir Redirection vers ACS. |
| Condition | packedCReq |
String | Données challenge request empaquetées. Retourné lors d'une réponse réussie en cas de paiement 3D-Secure, si une redirection vers ACS est requise. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. Pour plus de détails, voir Redirection vers ACS. |
Pour finaliser la transaction utilisez la méthode /p2p/finishThreeDsVer2.do.
Exemples
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 demande :
{
"errorCode": 0,
"info": "Your order is proceeded, redirecting...",
"acsUrl": "https://example.com/acs2/acs/creq",
"is3DSVer2": true,
"packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}Statut du virement P2P
Pour obtenir le statut de la 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. |
| Condition | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Condition | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Obligatoire | errorMessage |
String [1..512] | Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderStatus |
Integer | La valeur de ce paramètre indique le statut de la commande dans la passerelle de paiement. Absent si la commande n'a pas été trouvée. Ci-dessous la liste des valeurs disponibles :
|
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | panMaskedFrom |
String [1..19] | Numéro de carte masqué pour le débit des fonds. |
| Facultatif | panMaskedTo |
String [1..19] | Numéro de carte masqué pour le crédit des fonds. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | creationDate |
Integer | Date d'enregistrement de la commande. |
| Facultatif | orderDescription |
String [1..600] | Description de la commande transmise à la passerelle de paiement lors de l'enregistrement. Il est interdit de transmettre des données personnelles ou des données de paiement (numéros de cartes, etc.) dans ce champ. Cette exigence est liée au fait que la description de la commande n'est masquée nulle part. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | resultCode |
Integer | Code d'erreur lors de l'exécution de la requête. Valeurs possibles :
|
| Facultatif | orderParams |
Object | Objet avec les attributs marchands de la commande. Dans la réponse, plus d'un bloc orderParams peut être présenté.L'objet doit être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | operationList |
Object | Objet contenant des informations sur les transactions terminées dans la commande. Dans la réponse, il peut y avoir plus d'un bloc operationList.Les paramètres qui peuvent être transmis sont décrits ci-dessous. |
| Facultatif | binding |
String | Identifiant de liaison (si elle a déjà été créée). Ce paramètre est retourné uniquement si la version getP2PStatus est égale à 3 ou supérieure. |
| Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la réalisation de la première transaction (par exemple, un achat). Lors de l'exécution de l'opération inverse (remboursement, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
L'élément payerData contient les paramètres suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | paymentAccountReference |
String [1..29] | Numéro unique du compte client, reliant tous ses moyens de paiement dans le cadre du SPI (cartes et jetons). |
Ci-dessous sont présentés les paramètres possibles du bloc operationList.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | operationType |
String | Type de transaction. Les valeurs suivantes sont disponibles :
|
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currency |
String [3] | Code de devise du paiement ISO 4217. Si non spécifié, alors la valeur par défaut est utilisée. Seuls les chiffres sont autorisés. |
| Facultatif | datetime |
String | Date et heure de l'exécution de l'opération. |
| Facultatif | resultCode |
String | Code de réponse du traitement de la banque. Contient une valeur numérique. Voir la liste des codes de réponse ici. |
| Facultatif | resultCodeDescription |
String [1..512] | Description du code d'erreur de la transaction. |
| Facultatif | maskedPan |
String [1..19] | Numéro de carte masqué ou token utilisé pour le paiement. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de carte (le cas échéant). |
| Facultatif | refNum |
String [12] | Identifiant unique de l'opération, attribué par la banque acquéreuse lors du traitement du paiement par carte bancaire. Le RRN est créé exclusivement par la banque acquéreuse et est utilisé pour la recherche, la vérification et le règlement ultérieurs des opérations (y compris les remboursements, chargebacks et enquêtes). |
Exemples
Exemple de requête
curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/getP2PStatus.do'
-H 'Content-Type: application/json'
--data-raw '{
"username": "test_user",
"password": "test_user_password",
"orderId" : "0a4eaae8-653a-71a9-8259-46fc00a8ea58"
}'Exemple de réponse
{
"orderStatus": 0,
"errorCode": 0,
"errorMessage": "Successful",
"orderNumber": "2009",
"amount": 50000,
"currency": "978",
"creationDate": 1674137044330,
"orderParams": [],
"operationList": [],
"resultCode": 0
}Finalisation de la transaction P2P 3DS2 via API
Pour finaliser la transaction P2P, le vendeur envoie l'identifiant de la transaction à la passerelle en utilisant la méthode https://dev.bpcbt.com/payment/rest/api/p2p/finishThreeDsVer2.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/x-www-form-urlencoded
Paramètres de la requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | username |
String [1..30] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | tDsTransId |
String [1..36] | Identifiant unique de transaction obtenu du serveur 3DS. |
Paramètres de la réponse
La réponse à cette requête ne contient aucun paramètre JSON. Au lieu de cela, elle redirige le client vers l'une des URL suivantes :
- Si le traitement de la requête s'est déroulé avec succès, la passerelle de paiement redirige le client vers l'URL indiquée dans le paramètre
returnUrllors de l'enregistrement de la commande, avec les paramètres ajoutésorderIdetlang; - Si le traitement de la requête s'est déroulé sans succès, la passerelle de paiement redirige le client vers l'URL indiquée dans le paramètre
failUrllors de l'enregistrement de la commande, avec les paramètres ajoutésorderIdetlang.
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/api/p2p/finishThreeDsVer2.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data '{
"username": "test_user",
"password": "test_user_password",
"threeDSServerTransId": "65020d0c-2627-4a45-8eab-b93b58fc52ae"
}'Exemple d'URL de redirection
https://mybestmerchantreturnurl.com/finish.html?orderId=906bf262-bd53-4ac7-983c-07127954681b&lang=en