Description générale
Vous pouvez utiliser notre API marchand pour créer le scénario de paiement dont vous avez besoin. Par exemple, vous pouvez créer votre propre page de paiement entièrement personnalisée et la connecter à notre passerelle de paiement.
Vous pouvez télécharger la collection de demandes API pour Postman afin de tester les fonctionnalités principales de l'API. Assurez-vous d'envoyer les demandes comme POST avec les attributs dans le corps de la demande.
Télécharger la collection Postman
Caractère obligatoire des paramètres
Le caractère obligatoire de la présence d'un paramètre dans la requête/réponse peut prendre les valeurs suivantes :
- Obligatoire - le paramètre doit toujours être présent. En cas d'absence de valeur, il est nécessaire de transmettre une valeur vide selon le format ;
- Facultatif - le paramètre peut être présent ou absent, sa présence excessive n'entraînera pas d'erreur du système ;
- Condition - le paramètre peut être présent (être obligatoire) ou absent selon une ou plusieurs conditions.
Le caractère obligatoire de la transmission du paramètre dans la description de la requête/réponse est indiqué dans la colonne du même nom "Caractère obligatoire".
Authentification
Pour l'authentification du marchand dans la passerelle de paiement, deux méthodes peuvent être utilisées.
- En utilisant le login et le mot de passe de l'utilisateur API du marchand (compte avec le suffixe
-api), obtenu lors de l'inscription. Ces valeurs sont transmises dans les paramètresuserNameetpasswordrespectivement (voir le tableau ci-dessous).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
- À l'aide d'un token spécial - sa valeur peut être demandée auprès du service de support technique. Dans les requêtes, sa valeur est transmise dans le paramètre
token(voir le tableau ci-dessous).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
URL pour les appels API
TEST: https://dev.bpcbt.com/payment/rest/
PROD: https://dev.bpcbt.com/payment/rest/
Erreurs
Codes de statut HTTP:
200- en cas d'appels API de la passerelle de paiement, il est nécessaire d'analyser le JSON de la réponse pour déterminer si le traitement de la transaction a été réussi ou non. Le succès est indiqué soit par :
- la valeur du paramètresuccességale àtrue
- la valeur du paramètreerrorCodeégale à0
Si les deux paramètres sont présents,successa la priorité surerrorCode.400- une erreur interne s'est produite dans le système.404- erreur lors de l'appel API - URL incorrect (n'existe pas).429- ce code signifie que le système est surchargé. Le plus souvent, la raison principale est que la limite de requêtes par seconde ou la limite de requêtes simultanées est atteinte. Mais cela peut aussi être lié au fait que le système dans son ensemble est surchargé (indépendamment de vos requêtes).500 ou 502- ce code signifie que quelque chose s'est mal passé de notre côté.
Si une requête liée au paiement d'une commande est traitée avec succès, cela ne signifie pas encore que le paiement lui-même s'est déroulé avec succès.
Pour déterminer si le paiement a été réussi ou non, vous pouvez vous référer à la description de la requête utilisée. Aussi, pour déterminer le statut du paiement, il est toujours possible d'utiliser l'algorithme décrit ci-dessous
- Faire un appel getOrderStatusExtended.do;
- Vérifier le champ
orderStatusdans la réponse : la commande est considérée comme payée seulement si la valeurorderStatusest égale à1ou2.
Signature de requête API
Dans certains cas, pour assurer un échange de données sécurisé, il peut être nécessaire d'implémenter une signature asymétrique de requête. Habituellement, cette exigence s'applique seulement si vous effectuez des requêtes P2P/AFT/OCT.
Pour pouvoir signer les requêtes, vous devez effectuer les étapes suivantes :
- Créez et téléchargez un certificat.
- Calculez le hash et la signature, en utilisant votre clé privée, et transmettez le hash généré (X-Hash) et la valeur de signature (X-Signature) dans l'en-tête de la requête.
Ces étapes sont décrites en détail ci-dessous.
Création et téléchargement d'un certificat
-
Créez une clé privée RSA de 2048 bits. La méthode de génération dépend de la politique de confidentialité de votre entreprise. Par exemple, vous pouvez le faire avec OpenSSL :
openssl genrsa -des3 -out private.key 2048 -
Créez un CSR public (demande de signature de certificat), en utilisant la clé privée générée :
openssl req -key private.key -new -out public.csr -
Créez un certificat en utilisant la clé privée générée et le CSR. Exemple de formation d'un certificat pour 5 ans :
openssl x509 -signkey private.key -in public.csr -req -days 1825 -out public.cer Téléchargez le certificat généré dans l'Espace personnel. Pour cela, allez dans Certificats de portefeuilles > Merchant API, cliquez sur Ajouter un certificat et téléchargez le certificat public généré.

Calcul du hash et de la signature
-
Calculez le hash SHA256 du corps de la requête de la manière suivante :
- Utilisez le corps de la requête sous forme de chaîne (dans notre exemple c'est
amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api). - Calculez le hash SHA256 de cette chaîne en octets bruts.
- Convertissez les octets bruts en encodage base64.
- Utilisez le corps de la requête sous forme de chaîne (dans notre exemple c'est
Générez une signature pour le hash SHA256 calculé à l'aide de l'algorithme RSA, en utilisant la clé privée.
Dans notre exemple, nous utilisons la clé privée suivante avec le mot de passe 12345 :
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C502560EDE8F82B7
O4+bY1Q1ZcXFLDGVE8s9G2iVISHR/c/IMZKZEjkBED/TbuOCUGVjcav2ZaZO2dO0
lm771N6JNB01uhJbTHScVQ6R0UnGezHFTcsJlAlBa9RQyOwujs4Pk6riOGnLliIs
urnTXD0oskBR1wLRA2kp8+V0UPOAMXQaoLxFGE/o8taDGSrkyIcYTBoh9o7ZBxvO
SqUWAt2vPbGVyc6XspyuVtgHgEctaJO+E26QTweqdpN5JITF+fDFPNwUrFHoho4N
pxpKRWbiCJSpbvbsvhdizkmfgvRw+qYJvTirF3JTfGr14DttudFwjm7sNrr0JILR
XPKDUhRyWjkthZM+oDjF2HwISAGkbxcpn4PU7Tywq0uax+5KCQQn2uz4jLM2P6+9
000cvVLwhMnoUdOxuISRXeOcOWVyTO1mPfKiWnHaoO4yS3Y36OCIOe9RHGP8TTmq
acb3LUIF30eQyk3KxH/tUB0ScPDKEKMiww13/Kcfr0JkdIe/BWCvV+hSQm38TLQe
bTFy+wnD9kHACCwTSVVSOO+rHgJGVIyLgnpClZKWQyyJ4clH7/cORA7mTmp85Ckx
IjV5Egu0bPPUMudOB5BnQ4u85RnqXavasgrLRA3JZM4+Jzl8MNy/fsFXnVBQLJJC
Wlz/B7S7W8sabRogFuiqkkPmXE/QcpdKQoY3yh748QqMSl8vkA6WgndyYv1EnDDl
jA5j7vSf0wKI8BHgdHBEWuEjn3X/s0S/BiPPI6puboYY90tYVJTWSQCR83QrMF3N
BIcMu4+RIYu6GWnPx9npZpt0858c670ZII56np24iMse3qgHCOZxsGOenK2x7ta6
163gvaD8bu8xoeQcGVfd6IMbXWVb0+z1hvWR5HWHSalof4lMzZrDsQDKc2UA0ygh
hA1+VAl1MAEHVLNCCmyG1SwRwg1PI7FfftW7YARngCZRWkJ1haj1fgy7rtYolrdv
lEz/vjFD6diABx67omGgfiJhWdiKIlzsYlX1SW7yaik/Uxf1j8gTFwY34y8ekVd9
6pQTzV2V/4a48ELZl4LvelLWyt1AB3AR+/fM7YG6LYIqlo+qnLtro7Bqu8RNTNRP
wcWCd04r/20ulFWMIH8pVa60C98pSdOXriWEI1KDLc0E/fCdhjW2kL+FTPLC7ORe
cuzmfI27+06P/BvLZq/FAVBrDAmkioKwe6XYzTjpK1p5jZ3IrNwjAiasY1MNxCRy
5ufhQwkW//d+VUdU5m8Sm30/kXe9UkxMaetXgzPxbB7+5QFFr0bi7D1MjIrJNtTx
5g5E+UfOhqrp8ztBht9csQeFYSYabyyGX4Lh7ymVWrKCVdHlJib3M36nvOjpV/lA
zf35sxFz9kaQqNK7xJdQ9Bx6TBUzLjpYhNry37vKk+SIB6Weo+LJ99mALMeX79CB
osRqZqX5yrZhaQ8bbpo981nvLy5xFnpRqCuSWVZrVMBq3LQLaOvaCeyGC0V+ZN0C
CU6lHlR6XQqd/IjoEN8+8aiVp6Ubw8FuD28TDaEvCltrX3ARL0xFpABsa42LgV1F
09Vi+ju7SSNDvbezN8q0EILq9xp/zNCVhMpyRCIXBq9fzHkyCZ5qMw==
-----END RSA PRIVATE KEY-----
Nous obtenons la signature :
pJ/gM4PR1/mKGuIxMvTl5pYDDjJslb0BcXFnIxijFn5qKdPd7W+2ueoctziU7omnkYp01/BlracukH1GOPWMSO+9zKuTDdFueFm1utsS0zaPFU+dmc1niGDRWE0CbCXcti/rGSTDPsnR58mwqgVkbCWxKyCDtuo5LxiKPK9mzgWTUuJ8LX6f6u42MURi5tRG6a9dc8l/+J94g0YOk911R6Lqv2jcluEvZ9ZeMMt8hyxowb0eDaCHlussu2CAyqpE9V+EUAc81Jkwv96MMSsA6UnFwEaCV/k+kwYd0jHCx94m2yWX734p9cWsBW7Fr5F0zox9Yck4GOjqe9nJMMB9jQ==
3. Vous devez maintenant transmettre le hachage généré (X-Hash) et la valeur de la signature (X-Signature) dans l'en-tête de la requête. La requête ressemblera à ceci :
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/register.do \
--header 'content-type: application/x-www-form-urlencoded' \
--header 'X-Hash: eYkMUF+xaYJhsETTIGsctl6DBNZha1ITN8muCcWQtZk=' \
--header 'X-Signature: pJ/gM4PR1/mKGuIxMvTl5pYDDjJslb0BcXFnIxijFn5qKdPd7W+2ueoctziU7omnkYp01/BlracukH1GOPWMSO+9zKuTDdFueFm1utsS0zaPFU+dmc1niGDRWE0CbCXcti/rGSTDPsnR58mwqgVkbCWxKyCDtuo5LxiKPK9mzgWTUuJ8LX6f6u42MURi5tRG6a9dc8l/+J94g0YOk911R6Lqv2jcluEvZ9ZeMMt8hyxowb0eDaCHlussu2CAyqpE9V+EUAc81Jkwv96MMSsA6UnFwEaCV/k+kwYd0jHCx94m2yWX734p9cWsBW7Fr5F0zox9Yck4GOjqe9nJMMB9jQ==' \
--data 'amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api'La requête doit répondre aux exigences suivantes :
- Tous les paramètres de requête sont inclus dans le corps de la requête (pas dans l'URL)
-
Si les paramètres de requête sont transmis au format JSON, l'en-tête suivant doit être utilisé :
--header 'content-type: application/json' -
Si les paramètres de requête sont transmis au format Query (par exemple,
parameterA=valueA&parameterB=valueB), l'en-tête suivant doit être utilisé :--header 'content-type: application/x-www-form-urlencoded' La requête contient le login et le mot de passe corrects de l'utilisateur API.
L'en-tête
X-Hashcontient le hachage SHA256 du corps de la requête (calculé à l'Étape 1).L'en-tête
X-Signaturecontient la signature pour le hachage SHA256, calculée à l'aide de l'algorithme RSA en utilisant la clé privée (générée à l'Étape 2).
Exemple de code Java
Ci-dessous un exemple de code Java qui charge la clé privée, calcule le hachage SHA256, le signe à l'aide de la clé privée avec le mot de passe 12345, puis envoie la requête correcte register.do :
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.PrivateKey;
import java.security.Signature;
import java.util.Base64;
import static java.net.HttpURLConnection.HTTP_OK;
public class SimpleSignatureExample {
// Cet exemple n'est pas prêt pour la production. Il montre simplement comment utiliser les signatures dans l'API.
public static void main(String[] args) throws Exception {
// charger la clé privée depuis jks
KeyStore ks = KeyStore.getInstance("JKS");
char[] pwd = "123456".toCharArray();
ks.load(Files.newInputStream(Paths.get("/path/to/certificates.jks")), pwd);
PrivateKey privateKey = (PrivateKey) ks.getKey("111111", pwd);
// Signer
String httpBody = "amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api";
MessageDigest digest = MessageDigest.getInstance("SHA-256");
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
byte[] sha256 = digest.digest(httpBody.getBytes());
signature.update(sha256);
byte[] sign = signature.sign();
// Envoyer
Base64.Encoder encoder = Base64.getEncoder();
HttpsURLConnection connection = (HttpsURLConnection) new URL("https://<YOUR_DOMAIN>/payment/rest/register.do").openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.addRequestProperty("content-type", "application/x-www-form-urlencoded");
connection.addRequestProperty("X-Hash", encoder.encodeToString(sha256));
connection.addRequestProperty("X-Signature", encoder.encodeToString(sign));
connection.addRequestProperty("Content-Length", String.valueOf(httpBody.getBytes().length));
try (final DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
outputStream.write(httpBody.getBytes());
outputStream.flush();
}
connection.connect();
InputStream inputStream = connection.getResponseCode() == HTTP_OK ? connection.getInputStream() : connection.getErrorStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}Exemple de code Python
Ci-dessous un exemple de code Python qui génère la signature :
import OpenSSL
from OpenSSL import crypto
import base64
from hashlib import sha256
key_file = open("./priv.pem", "r")
key = key_file.read()
key_file.close()
if key.startswith('-----BEGIN '):
pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, key)
else:
pkey = crypto.load_pkcs12(key, password).get_privatekey()
data = "amount=2000¤cy=978&userName=test_user&password=test_user_password&returnUrl=https%3A%2F%2Fmybestmerchantreturnurl.com&description=my_first_order&language=en"
sha256_hash = sha256(data.encode()).digest()
base64_hash = base64.b64encode(sha256_hash)
print(base64_hash)
sign = OpenSSL.crypto.sign(pkey, sha256_hash, "sha256")
signed_base64 = base64.b64encode(sign)
print(signed_base64)Le fichier de clé privée pour l'exemple Python doit avoir le format :
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDdpOwhY/p9x0WmBd3HaDfCD+KYung3M8Cxrw0ozF+h//GltRdnkJD7ejsBDB6/YeIVXZeU3AyqWvsi/IfeHwnokGxVg2IMw8OPacY6o1x7W0EQtfRoZa2Cn2PMCpZhEHlIVraXZDDeg4HY26YP0FZxRbpNnpXhGbiop+Bq0wHeE3JIk53cRmwYhxdxMmvFpgNd6C3dYhmnQqLv6WSpVNDFbQxBVU+JDNyR9FQwB1dU2MadgYwFJnEssbhUkM+sXAC4Wv3qhcZek6MWeWsbFIIlyTPa1T3yrWSXIb4qFJEro4pRMmwQ72qG02p8EPx1tlveQo22TojV9WbTPtaVwQtxAgMBAAECggEBANheTGkYOYsZwgMdzPAB7BSU/0bLGdoBuoV6dqUyRdVWjqaOTwe519625uzR0R5RRqxGzlfyLKcM5Aa2cUhEEp8mhatA87G0Va8lue66VOjTH4RZq/tR7v0J7hlc6Ipe05brl5nYo+BEjriNS+I6Jnizcfid7IBvZJW4NFr0G+mWTxl2BhUK/Mk895n8hg9QtgSRoMNO4jK2f0vJrH4hBHehTYpjHx+QhbUyIvsp60bEnNOXzl054TuWBVCYAQHcHTTZowWMY0s1Z0kGNxwsqQm4amW/v+1EqCF4fjRDrU6v/kjDKxGFx9GJUktKZAe2T8e2LySjgGpJO5g4AdxIVpUCgYEA8x9te+i2ijxoS3kIUSwXaPq5EdKGWGl5mW8KZHzmt9LB/CqTKvSOiDkMGoAx/76t5QmKOYojP+Vsc2XdfQfhT6d00MGTdiPBd+8//MmQQ07/D1/PV58Jd1O8bQFU4fZCMpQl/8Azp9ix/NEx0sHDv2KigLfFMBVGeJxwSoU2JzMCgYEA6WJC0BDTA9vx+i+p9i/41f7ozpQuYey5sxdZa2emOSYen6ptxUFLAYXMxVDaBJ89PMUa8GzWoXHhgXzbuRJk74IzUhWgPpneS4HTr5KDStJh2TqWWVLwEIgLwxvtuw0i9uSEU64D/Czzm801lrOhVgmZsWwNpFtP8ujz0v84MssCgYEA1P4YhbB3kx2e5VfwgGSXUcIttr5wMi6deF0+hpCh9DNw/QEzkzNTV2ZbAzCCHSKo5/n2nbg2b3kIDQUWCL6JlqYHAghErwBeMztoHIddmoovjAGM/Z93xJGYhwremWOL1RHTRH7XAlomfG2tL43PdvDrmsbkut44sdujyLVxnt8CgYBirK3tBMADKLJVgmOM+FlwORe7iAFYW9tj8iJXe/pWvVxDS66fsOyCl0ytvHKBc8ZTdE7gilPw7JJYyi6oQDO25EjIkuYusaXALQMQf5TNRMgkLVY2LA/eHXdDpgJMjNBUrOeZ7cA3ldXl8MyQjCBRnTuDPVlDPWw/GulEM65SIwKBgQDIEv8XK2YBkZrr+0fZSFTQAeK4R7Ve3z4hbpHhJi41YanCNaEWoeYAuQd6/b/QLwABllvfJBDYCNnF8heUxqISpyWd+FZ8nhZtxBoKj5l80czTcutIz/M+ETcvl8FqnMBsoCdp1wodqaLkOx6DIldgKLze6AqKXl5lHUsU4mvVqg==
-----END PRIVATE KEY-----
Enregistrement de commande
Enregistrement de commande
Pour l'enregistrement de commande, la requête https://dev.bpcbt.com/payment/rest/register.do est utilisée.
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 requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| 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). |
| 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. |
| 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 | 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 | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| 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 | cardholderName |
String [1..150] | Nom du titulaire de la carte en caractères latins. Lors de la transmission de ce paramètre, le nom du titulaire de la carte sera affiché sur la page de paiement. |
| Facultatif | jsonParams |
Object | Ensemble d'attributs supplémentaires de forme arbitraire, structure:jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Certains attributs prédéfinis jsonParams:
|
| 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 | expirationDate |
String [19] | 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 | 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 | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Facultatif | postAddress |
String [1..255] | Adresse de livraison. |
| Facultatif | orderBundle |
Object | Objet contenant le panier de produits. La description des éléments imbriqués est donnée ci-dessous. |
| 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. |
| Condition | email |
String [1..40] | Courrier électronique pour affichage sur la page de paiement. Si les notifications client sont configurées pour le vendeur, le courrier électronique doit être spécifié. Exemple : client_mail@email.com. L'adresse de courrier électronique n'est pas vérifiée lors de l'enregistrement, elle sera vérifiée plus tard lors du paiement. |
| 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 le passage de 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. |
| 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 :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Description des paramètres dans l'objet orderBundle :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | orderCreationDate |
String [19] | Date de création de la commande au format YYYY-MM-DDTHH:MM:SS. |
| Facultatif | customerDetails |
Object | Bloc contenant les attributs du client. La description des attributs de la balise est donnée ci-dessous. |
| Obligatoire | cartItems |
Object | Objet contenant les attributs des produits dans le panier. La description des éléments imbriqués est fournie ci-dessous. |
Description des paramètres dans l'objet customerDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | contact |
String [0..40] | Méthode de contact préférée par le client. |
| Facultatif | fullName |
String [1..100] | Nom complet du payeur. |
| Facultatif | passport |
String [1..100] | Série et numéro du passeport du payeur au format suivant : 2222888888
|
| Facultatif | deliveryInfo |
Object | Objet contenant les attributs de l'adresse de livraison. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet deliveryInfo :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | deliveryType |
String [1..20] | Mode de livraison. |
| Obligatoire | country |
String [2] | Code de pays de livraison à deux lettres. |
| Obligatoire | city |
String [0..40] | Ville de destination. |
| Obligatoire | postAddress |
String [1..255] | Adresse de livraison. |
Description des paramètres dans l'objet cartItems :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | items |
Object | Élément du tableau avec les attributs de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet items :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | positionId |
Integer [1..12] | Identifiant unique de la position de marchandise dans le panier. |
| Obligatoire | name |
String [1..255] | Désignation ou description de la position tarifaire sous forme libre. |
| Facultatif | itemDetails |
Object | Objet avec les paramètres de description de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Obligatoire | quantity |
Object | Élément décrivant la quantité totale des positions de marchandises d'un même positionId et ses unités de mesure. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | itemAmount |
Integer [1..12] | Montant du coût de toutes les positions de marchandises d'un positionId dans les unités minimales de la devise. itemAmount est obligatoire à transmettre, seulement si le paramètre itemPrice n'a pas été transmis. Dans le cas contraire, la transmission d'itemAmount n'est pas requise. Si dans la requête les deux paramètres sont transmis : itemPrice et itemAmount, alors itemAmount doit être égal à itemPrice * quantity, dans le cas contraire la requête se terminera avec une erreur. |
| Facultatif | itemPrice |
Integer [1..18] | Montant du coût de la position de marchandise d'un positionId en argent dans les unités minimales de devise. |
| Facultatif | depositedItemAmount |
String [1..18] | Montant de débit pour un positionId en unités minimales de devise (par exemple, en centimes). |
| Facultatif | itemCurrency |
Integer [3] | Code de devise ISO 4217. Si non spécifié, considéré comme égal à la devise de la commande. |
| Obligatoire | itemCode |
String [1..100] | Numéro (identifiant) de la position de marchandise dans le système du magasin. |
Description des paramètres dans l'objet quantity :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
Number [1..18] | Quantité de positions de marchandises de ce positionId. Pour indiquer les nombres fractionnaires, utilisez le point décimal. Maximum 3 chiffres après le point sont autorisés. |
| Obligatoire | measure |
String [1..20] | Unité de mesure de la quantité par position. |
Description des paramètres dans l'objet itemDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | itemDetailsParams |
Object | Paramètre décrivant les informations supplémentaires sur la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet itemDetailsParams :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
String [1..2000] | Informations supplémentaires sur la position de marchandise. |
| Obligatoire | name |
String [1..255] | Dénomination du paramètre de description de la détaillisation de la position de marchandise |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/register.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=123456 \
--data userName=test_user \
--data password=test_user_password \
--data orderNumber=1234567890ABCDEF \
--data returnUrl=https://mybestmerchantreturnurl.com \
--data failUrl=https://mybestmerchantfailurl.com \
--data email=test@test.com \
--data clientId=259753456 \
--data features=FORCE_SSL \
--data features=FORCE_TDS \
--data language=en \
--data 'jsonParams={"param_1_name":"param_1_value","param_2_name":"param_2_value"}'Exemple de réponse - succès
{
"orderId": "01491d0b-c848-7dd6-a20d-e96900a7d8c0",
"formUrl": "https://dev.bpcbt.com/payment/payment/merchants/ecom/payment_en.html?mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0"
}Exemple de réponse - erreur
{
"errorCode": "1",
"errorMessage": "Order number is duplicated, order with given order number is processed already"
}Enregistrement de commande avec pré-autorisation
Pour la demande d'enregistrement de commande avec pré-autorisation, la méthode https://dev.bpcbt.com/payment/rest/registerPreAuth.do est utilisée.
Lors de l'exécution de la demande, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/x-www-form-urlencoded
Paramètres de la demande
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| 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). |
| 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. |
| 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 | 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 | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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). |
| 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 | cardholderName |
String [1..150] | Nom du titulaire de la carte en caractères latins. Lors de la transmission de ce paramètre, le nom du titulaire de la carte sera affiché sur la page de paiement. |
| Facultatif | jsonParams |
Object | Ensemble d'attributs supplémentaires de forme arbitraire, structure:jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Certains attributs prédéfinis jsonParams:
|
| 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 | expirationDate |
String [19] | 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 | 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 | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Facultatif | postAddress |
String [1..255] | Adresse de livraison. |
| Facultatif | orderBundle |
Object | Objet contenant le panier de produits. La description des éléments imbriqués est donnée ci-dessous. |
| 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. |
| Condition | email |
String [1..40] | Courrier électronique pour affichage sur la page de paiement. Si les notifications client sont configurées pour le vendeur, le courrier électronique doit être spécifié. Exemple : client_mail@email.com. L'adresse de courrier électronique n'est pas vérifiée lors de l'enregistrement, elle sera vérifiée plus tard lors du paiement. |
| 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. |
| 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 commande préliminaire. 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 :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Description des paramètres dans l'objet orderBundle :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | orderCreationDate |
String [19] | Date de création de la commande au format YYYY-MM-DDTHH:MM:SS. |
| Facultatif | customerDetails |
Object | Bloc contenant les attributs du client. La description des attributs de la balise est donnée ci-dessous. |
| Obligatoire | cartItems |
Object | Objet contenant les attributs des produits dans le panier. La description des éléments imbriqués est fournie ci-dessous. |
Description des paramètres dans l'objet customerDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | contact |
String [0..40] | Méthode de contact préférée par le client. |
| Facultatif | fullName |
String [1..100] | Nom complet du payeur. |
| Facultatif | passport |
String [1..100] | Série et numéro du passeport du payeur au format suivant : 2222888888
|
| Facultatif | deliveryInfo |
Object | Objet contenant les attributs de l'adresse de livraison. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet deliveryInfo :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | deliveryType |
String [1..20] | Mode de livraison. |
| Obligatoire | country |
String [2] | Code de pays de livraison à deux lettres. |
| Obligatoire | city |
String [0..40] | Ville de destination. |
| Obligatoire | postAddress |
String [1..255] | Adresse de livraison. |
Description des paramètres dans l'objet cartItems :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | items |
Object | Élément du tableau avec les attributs de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet items :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | positionId |
Integer [1..12] | Identifiant unique de la position de marchandise dans le panier. |
| Obligatoire | name |
String [1..255] | Désignation ou description de la position tarifaire sous forme libre. |
| Facultatif | itemDetails |
Object | Objet avec les paramètres de description de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Obligatoire | quantity |
Object | Élément décrivant la quantité totale des positions de marchandises d'un même positionId et ses unités de mesure. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | itemAmount |
Integer [1..12] | Montant du coût de toutes les positions de marchandises d'un positionId dans les unités minimales de la devise. itemAmount est obligatoire à transmettre, seulement si le paramètre itemPrice n'a pas été transmis. Dans le cas contraire, la transmission d'itemAmount n'est pas requise. Si dans la requête les deux paramètres sont transmis : itemPrice et itemAmount, alors itemAmount doit être égal à itemPrice * quantity, dans le cas contraire la requête se terminera avec une erreur. |
| Facultatif | itemPrice |
Integer [1..18] | Montant du coût de la position de marchandise d'un positionId en argent dans les unités minimales de devise. |
| Facultatif | depositedItemAmount |
String [1..18] | Montant de débit pour un positionId en unités minimales de devise (par exemple, en centimes). |
| Facultatif | itemCurrency |
Integer [3] | Code de devise ISO 4217. Si non spécifié, considéré comme égal à la devise de la commande. |
| Obligatoire | itemCode |
String [1..100] | Numéro (identifiant) de la position de marchandise dans le système du magasin. |
Description des paramètres dans l'objet quantity :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
Number [1..18] | Quantité de positions de marchandises de ce positionId. Pour indiquer les nombres fractionnaires, utilisez le point décimal. Maximum 3 chiffres après le point sont autorisés. |
| Obligatoire | measure |
String [1..20] | Unité de mesure de la quantité par position. |
Description des paramètres dans l'objet itemDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | itemDetailsParams |
Object | Paramètre décrivant les informations supplémentaires sur la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet itemDetailsParams :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
String [1..2000] | Informations supplémentaires sur la position de marchandise. |
| Obligatoire | name |
String [1..255] | Dénomination du paramètre de description de la détaillisation de la position de marchandise |
Paramètres de la réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/registerPreAuth.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=2000 \
--data userName=test_user \
--data password=test_user_password \
--data returnUrl=https://mybestmerchantreturnurl.com \
--data orderNumber=1255555555555 \
--data clientId=259753456 \
--data language=enExemple de réponse
{
"orderId": "01492437-d2fb-77fa-8db7-9e2900a7d8c0",
"formUrl": "https://dev.bpcbt.com/payment/merchants/pay/payment_en.html?mdOrder=01492437-d2fb-77fa-8db7-9e2900a7d8c0"
}Paiements directs
Paiement de la commande
Pour le paiement d'une commande préalablement enregistrée, la requête https://dev.bpcbt.com/payment/rest/paymentorder.do est utilisée.
La requête est utilisée en mode MPI/3DS Server interne, cela ne nécessite pas d'autorisations supplémentaires et/ou de certifications.
La requête est utilisée en mode MPI/3DS Server externe si vous avez un contrat avec un système de paiement international ou un certificat qui permet de mener de manière autonome l'authentification 3DS.
Cela signifie que vous pouvez utiliser votre propre MPI/3DS Server pour l'authentification du client en utilisant la technologie 3D Secure. Des informations supplémentaires sur le paiement avec votre propre MPI/3DS Server sont disponibles ici.
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
Paiement de la commande (MPI/3DS Server interne)
Le paiement de la commande se fait avec la transmission des données de paiement par carte, ainsi qu'avec l'utilisation de la technologie d'authentification 3DS (l'application de l'authentification est régulée par les paramètres, régulés par le service de support).
Paramètres de la requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Obligatoire | MDORDER |
String [1..36] | Numéro de commande dans la passerelle de paiement. |
| Obligatoire | $PAN |
Integer [1..19] | Numéro de carte de paiement. Obligatoire si seToken n'est pas transmis. |
| Obligatoire | $CVC |
String [3] | Code CVC/CVV2 au verso de la carte. Obligatoire, si seToken n'est pas transmis. Seuls les chiffres sont autorisés. |
| Obligatoire | YYYY |
Integer [4] | Année d'expiration de la carte de paiement. Si seToken n'est pas transmis, il est obligatoire de transmettre soit $EXPIRY, soit YYYY et MM. |
| Obligatoire | MM |
Integer [2] | Mois d'expiration de la carte de paiement. Si seToken n'est pas transmis, il est obligatoire de transmettre soit $EXPIRY, soit YYYY et MM. |
| Condition | $EXPIRY |
Integer [6] | Date d'expiration de la carte dans le format suivant : YYYYMM. Remplace les paramètres YYYY et MM. Si seToken n'est pas transmis, il est obligatoire de transmettre soit $EXPIRY, soit YYYY et MM. |
| Condition | seToken |
String | Données cryptées de la carte qui remplacent les paramètres $PAN, $CVC et $EXPIRY (ou YYYY,MM). Obligatoire si utilisé à la place des données de carte.Paramètres obligatoires pour la chaîne seToken : timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici. Si seToken contient des données cryptées sur la liaison (bindingId), pour le paiement il faut utiliser la requête paymentOrderBinding.do. |
| Obligatoire | TEXT |
String [1..512] | Nom du porteur de la carte. |
| Obligatoire | 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 | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Facultatif | jsonParams |
Object | Champs d'informations supplémentaires pour stockage ultérieur, transmis sous la forme suivante : jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Si vous utilisez un MPI/3DS Server externe, la passerelle de paiement s'attend à ce que chaque requête paymentOrder inclue un certain nombre de paramètres supplémentaires, tels que eci, xid, cavv et autres. Informations plus détaillées ici.Pour initier l'authentification 3RI, il peut être nécessaire de transmettre un certain nombre de paramètres supplémentaires (voir authentification 3RI). Certains attributs jsonParams prédéfinis :
|
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| 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 | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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. |
| 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 | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Marchand). Valeurs possibles |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| Facultatif | clientBrowserInfo |
Object | Bloc de données sur le navigateur du client, qui est envoyé à ACS pendant l'authentification 3DS. Ce bloc ne peut être transmis que si un paramètre spécial est activé (contactez l'équipe de support). Voir paramètres imbriqués. |
| Condition | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Condition | originalPaymentDate |
String | Date de la transaction initiale. Valeur au format Unix timestamp en millisecondes. Transmise si la valeur du paramètre tii = R,U ou F. |
| Facultatif | acsInIFrame |
Boolean | Drapeau indiquant que pour l'URL finale une version iFrame sera retournée. Valeurs possibles true ou false. Pour activer cette fonctionnalité, contactez le service de support. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Valeurs possibles de tii (Pour plus de détails sur les types de liaisons supportés par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Sauvegarde des données de carte après la transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non planifié (CIT) | Ultérieure | Acheteur | Le client choisit la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| U | Paiement non planifié (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| RI | Initiateur - Récurrents (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| R | Paiement récurrent (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération récurrente utilisant une liaison sauvegardée. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| I | Paiement échelonné (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération d'échelonnement utilisant une liaison sauvegardée. |
Ci-dessous sont présentés les paramètres du bloc clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}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 d'information 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 | En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
|
| 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 | 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. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
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). |
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 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 :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Condition | packedCReq |
String | Données challenge request empaquetées. Obligatoire, si une redirection vers ACS est nécessaire. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. |
Exemples
Exemple de requête
Exemple de première requête :
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/paymentorder.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data MDORDER=64d3b8c2-5d87-7d92-bd20-d8db011b4f5b \
--data '$PAN=4000001111111118' \
--data '$CVC=123' \
--data YYYY=2030 \
--data MM=12 \
--data 'TEXT=TEST CARDHOLDER' \
--data language=en
--data 'jsonParams={"param_1_name":"param_1_value","param_2_name":"param_2_value"}'Exemple de deuxième requête :
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/paymentorder.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data MDORDER=64d3b8c2-5d87-7d92-bd20-d8db011b4f5b \
--data '$PAN=4000001111111118' \
--data '$CVC=123' \
--data YYYY=2030 \
--data MM=12 \
--data 'TEXT=TEST CARDHOLDER' \
--data language=en \
--data threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6Exemples de réponse
Exemple de réponse à la première requête :
{
"errorCode": 0,
"is3DSVer2": true,
"threeDSServerTransId": "5802746e-3393-40c3-929a-dc966ebf08c6",
"threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
"threeDSMethodURLServer": "example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6",
"threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
}Exemple de réponse à la deuxième requête :
{
"info": "Your order is proceeded, redirecting...",
"errorCode": 0,
"acsUrl": "https://example.com/acs2/acs/creq",
"is3DSVer2": true,
"packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU4MDI3NDZlLTMzOTMtNDBjMy05MjlhLWRjOTY2ZWJmMDhjNiIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiODFmZTU1ODUtZmZhOS00Y2NkLTljMjAtY2QzYWFiZDQwNTllIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}Paiement de commande (en mode MPI/3DS Server externe)
Pour utiliser la requête paymenOrder.do en mode MPI/3DS Server externe, vous devez effectuer l'authentification 3DS en utilisant votre propre serveur MPI/3DS.
Vous avez également besoin d'une autorisation supplémentaire, attribuée par le service de support.
Paramètres de requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | MDORDER |
String [1..36] | Numéro de commande dans la passerelle de paiement. |
| Condition | $PAN |
Integer [1..19] | Numéro de carte de paiement. Obligatoire si seToken n'est pas transmis. |
| Condition | $CVC |
String [3] | Code CVC/CVV2 au verso de la carte. Obligatoire, si seToken n'est pas transmis. Seuls les chiffres sont autorisés. |
| Condition | YYYY |
Integer [4] | Année d'expiration de la carte de paiement. Si seToken n'est pas transmis, il est obligatoire de transmettre soit $EXPIRY, soit YYYY et MM. |
| Condition | MM |
Integer [2] | Mois d'expiration de la carte de paiement. Si seToken n'est pas transmis, il est obligatoire de transmettre soit $EXPIRY, soit YYYY et MM. |
| Condition | $EXPIRY |
Integer [6] | Date d'expiration de la carte dans le format suivant : YYYYMM. Remplace les paramètres YYYY et MM. Si seToken n'est pas transmis, il est obligatoire de transmettre soit $EXPIRY, soit YYYY et MM. |
| Condition | seToken |
String | Données cryptées de la carte qui remplacent les paramètres $PAN, $CVC et $EXPIRY (ou YYYY,MM). Obligatoire si utilisé à la place des données de carte.Paramètres obligatoires pour la chaîne seToken : timestamp, UUID, PAN, EXPDATE, MDORDER. Plus de détails sur la génération de seToken voir ici. Si seToken contient des données cryptées sur la liaison (bindingId), pour le paiement il faut utiliser la requête paymentOrderBinding.do. |
| Obligatoire | TEXT |
String [1..512] | Nom du porteur de la carte. |
| Obligatoire | 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 | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Facultatif | jsonParams |
Object | Champs d'informations supplémentaires pour stockage ultérieur, transmis sous la forme suivante : jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Si vous utilisez un MPI/3DS Server externe, la passerelle de paiement s'attend à ce que chaque requête paymentOrder inclue un certain nombre de paramètres supplémentaires, tels que eci, xid, cavv et autres. Informations plus détaillées ici.Pour initier l'authentification 3RI, il peut être nécessaire de transmettre un certain nombre de paramètres supplémentaires (voir authentification 3RI). Certains attributs jsonParams prédéfinis :
|
| Facultatif | tii |
String | Identificateur de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécutée par l'initiateur (Client ou Marchand). Valeurs possibles |
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Condition | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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 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. |
| Optionnel | 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. |
| Optionnel | 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. |
| Optionnel | 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. |
| Optionnel | 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 :
|
| Optionnel | clientBrowserInfo |
Object | Bloc de données sur le navigateur du client, qui est envoyé à ACS pendant l'authentification 3DS. Ce bloc peut être transmis seulement si un paramétrage spécial est activé (contactez l'équipe de support). Voir paramètres imbriqués. |
| Optionnel | acsInIFrame |
Boolean | Drapeau indiquant que pour l'URL finale une version iFrame sera retournée. Valeurs possibles true ou false. Pour activer cette fonctionnalité, contactez le service de support. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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 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. |
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. |
Valeurs possibles de tii (Pour plus de détails sur les types de liaisons supportés par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Sauvegarde des données de carte après la transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non planifié (CIT) | Ultérieure | Acheteur | Le client choisit la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| U | Paiement non planifié (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| RI | Initiateur - Récurrents (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| R | Paiement récurrent (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération récurrente utilisant une liaison sauvegardée. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| I | Paiement échelonné (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération d'échelonnement utilisant une liaison sauvegardée. |
Ci-dessous sont présentés les paramètres du bloc clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Optionnel | 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. |
| Optionnel | info |
String | En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
|
Exemples
Exemple de requête
curl --request POST \\
--url https://dev.bpcbt.com/payment/rest/paymentorder.do \\
--header 'content-type: application/x-www-form-urlencoded' \\
--data userName=test_user \\
--data password=test_user_password \\
--data MDORDER=0140dda0-71ed-7706-a61f-36bd00a7d8c0 \\
--data '$PAN=4000001111111118' \\
--data '$CVC=123' \\
--data YYYY=2030 \\
--data MM=12 \\
--data 'TEXT=TEST CARDHOLDER' \\
--data language=en \\
--data 'jsonParams={"eci": "02", "cavv": "AkZO5XQAA0rhBxoaufa+MAABAAA=", "xid": "5010857f-8d3f-74e1-9c5a-54a000cc4110", "threeDSProtocolVersion": "2.2.0", "authenticationTypeIndicator": "5"}'Exemple de réponse
{
"redirect": "https://dev.bpcbt.com/payment/merchants/temp/finish.html?orderId=01493844-d4d3-703f-9f7e-a73900a7d8c0",
"info": "Your order is proceeded, redirecting...",
"errorCode": 0
}Paiement de commande avec caractéristiques de transaction Industry Practice
Pour le paiement de commande avec caractéristiques de transaction Industry Practice, la requête https://dev.bpcbt.com/payment/industryPractice/paymentOrder.do est utilisée.
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 requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Conditionnel | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Conditionnel | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| Obligatoire | originalMdOrder |
String [1..36] | Numéro de la commande d'origine dans la Passerelle de paiement, pour laquelle le paiement Industry Practice est effectué. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Conditionnel | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en centimes) du paiement d'origine pour les opérations Incremental, Delayed Charges, No show. Le paramètre est obligatoire pour les opérations Incremental, Delayed Charges, No show. Le paramètre ne doit pas être spécifié pour Resubmission et Reauthorization. |
| Facultatif | jsonParams |
Object | Balise supplémentaire avec attributs pour transmettre des paramètres supplémentaires. Voir ci-dessous. L'ancien paramètre params est un alias de ce paramètre, c'est-à-dire que les requêtes avec params fonctionnent également. |
| Obligatoire | tii |
String | Identifiant de l'initiateur (pour) la transaction. Paramètre indiquant quel type d'opération sera effectué par l'initiateur (Client ou Commerçant). |
| Facultatif | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
Valeurs possibles de tii.
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Remarque |
|---|---|---|---|---|---|
| IPI | Industry Practice Incremental (MIT) | Ultérieure | Vendeur | Non saisies, chargées depuis l'enregistrement transactionnel correspondant ou la liaison de la passerelle de paiement | Transaction d'augmentation du montant de paiement dans le cadre d'une commande déjà payée. |
| IPS | Industry Practice Resubmission (MIT) | Ultérieure | Vendeur | Non saisies, chargées depuis l'enregistrement transactionnel correspondant ou la liaison de la passerelle de paiement | Transaction de tentative de paiement répété, lorsque le paiement initial s'est terminé par une erreur. |
| IPD | Industry Practice Delayed Charges (MIT) | Ultérieure | Vendeur | Non saisies, chargées depuis l'enregistrement transactionnel correspondant ou la liaison de la passerelle de paiement | Fonctionnalité de charges différées. |
| IPA | Industry Practice Reauthorization (MIT) | Ultérieure | Vendeur | Non saisies, chargées depuis l'enregistrement transactionnel correspondant ou la liaison de la passerelle de paiement | Tentative répétée d'autorisation, si l'achèvement ou l'exécution de la commande/service initial dépasse la durée de validité de l'autorisation établie par Visa/MC. |
| IPN | Industry Practice No Show (MIT) | Ultérieure | Vendeur | Non saisies, chargées depuis l'enregistrement transactionnel correspondant ou la liaison de la passerelle de paiement | Exécutée par les Marchands pour facturer au Client des amendes pour non-présentation lors de réservations d'hôtels et d'automobiles Car Sharing. |
Le bloc jsonParams contient les champs d'informations supplémentaires pour le stockage ultérieur. Pour transmettre N paramètres, la requête doit contenir N balises jsonParams, où l'attribut name contient le nom, et l'attribut value contient la valeur (voir le tableau ci-dessous).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | name |
String [1..255] | Nom du paramètre supplémentaire. |
| Obligatoire | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | mdOrder |
String [1..36] | Numéro de commande dans la passerelle de paiement avec le paiement Industry Practice exécuté. |
| Facultatif | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Facultatif | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Facultatif | rrn |
Integer [1..12] | Reference Retrieval Number - identifiant de transaction attribué par la banque acquéreuse. |
Exemples
Exemple de requête
curl --request POST \\
--url https://dev.bpcbt.com/payment/industryPractice/paymentOrder.do \\
--header 'content-type: application/x-www-form-urlencoded' \\
--data '{
"originalMdOrder":"f252eee4-5598-728a-a023-af6e09078dd0",
"orderNumber":"testOrderNumber1",
"tii":"IPI",
"amount":"10",
"username":"test_user",
"password":"test_user_password"
}'Exemple de réponse - Paiement réussi de commande avec caractéristiques de transaction Industry Practice
{
"errorCode": "0",
"errorMessage": "Successful",
"mdOrder": "d88680c4-54e9-7115-80ae-3cc709017350",
"actionCode": "0",
"approvalCode": "000000",
"rrn": "111111111113"
}Exemple de réponse - Paiement non réussi de commande avec caractéristiques de transaction Industry Practice (le processeur a retourné une erreur)
{
"errorCode": "5",
"errorMessage": "Unsuccessful",
"mdOrder": "d88680c4-54e9-7115-80ae-3cc709017350",
"actionCode": "116",
"approvalCode": "000000",
"rrn": "111111111113"
}Paiement non réussi de commande avec caractéristiques de transaction Industry Practice (par exemple, erreur de validation)
{
"errorCode": "5",
"errorMessage": "Operation is not allowed for original order"
}Paiement instantané
Requête utilisée pour enregistrer une commande et effectuer simultanément le paiement – https://dev.bpcbt.com/payment/rest/instantPayment.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 requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Conditionnel | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Conditionnel | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| Obligatoire | 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 | 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 | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | bindingNotNeeded |
Boolean | Valeurs autorisées :
|
| Conditionnel | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du commerçant, doit être unique pour chaque commerçant enregistré dans la passerelle de paiement. Si le numéro de commande est généré du côté de la passerelle de paiement, ce paramètre n'est pas obligatoire à transmettre. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | 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 | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | pan |
String [1..19] | Numéro de carte de paiement (obligatoire, si bindinId n'est pas transmis). La valeur pan remplace la valeur bindingId. |
| Facultatif | cvc |
String [3] | La transmission du paramètre est déterminée par le type de paiement :
|
| Facultatif | cardHolderName |
String [1..26] | Nom du titulaire de la carte en lettres latines. Ce paramètre n'est transmis qu'après le paiement de la commande. |
| 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 | 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 | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Facultatif | expirationDate |
String [19] | 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. |
| Conditionnel | seToken |
String [1..8192] | Données de carte chiffrées qui remplacent les paramètres $PAN, $CVC et $EXPIRY (ou YYYY,MM). Obligatoire si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken : timestamp, UUID, bindingId(ou PAN,EXPDATE). Pour plus de détails sur la génération de seToken voir ici. |
| 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 | jsonParams |
Object | Champs d'informations supplémentaires pour stockage ultérieur, transmis sous la forme suivante : jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Si vous utilisez un MPI/3DS Server externe, la passerelle de paiement s'attend à ce que chaque requête paymentOrder inclue un certain nombre de paramètres supplémentaires, tels que eci, xid, cavv et autres. Informations plus détaillées ici.Pour initier l'authentification 3RI, il peut être nécessaire de transmettre un certain nombre de paramètres supplémentaires (voir authentification 3RI). Certains attributs jsonParams prédéfinis :
|
| Facultatif | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Facultatif | orderBundle |
Object | Objet contenant le panier de produits. La description des éléments imbriqués est donnée ci-dessous. |
| 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 | 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. |
| 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 | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Facultatif | expiry |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. Obligatoire si ni seToken, ni bindingId ne sont transmis. |
| Conditionnel | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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 | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Marchand). Valeurs possibles |
| 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. |
| Conditionnel | originalPaymentDate |
String | Date de la transaction initiale. Valeur au format Unix timestamp en millisecondes. Transmise si la valeur du paramètre tii = R,U ou F. |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| 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 marchand du côté de la Passerelle de paiement. Voir paramètres imbriqués. |
| 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 la commande préalable. 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 :
|
Description des paramètres dans l'objet orderBundle :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | orderCreationDate |
String [19] | Date de création de la commande au format YYYY-MM-DDTHH:MM:SS. |
| Facultatif | customerDetails |
Object | Bloc contenant les attributs du client. La description des attributs de la balise est donnée ci-dessous. |
| Obligatoire | cartItems |
Object | Objet contenant les attributs des produits dans le panier. La description des éléments imbriqués est fournie ci-dessous. |
Description des paramètres dans l'objet customerDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | contact |
String [0..40] | Méthode de contact préférée par le client. |
| Facultatif | fullName |
String [1..100] | Nom complet du payeur. |
| Facultatif | passport |
String [1..100] | Série et numéro du passeport du payeur au format suivant : 2222888888
|
| Facultatif | deliveryInfo |
Object | Objet contenant les attributs de l'adresse de livraison. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet deliveryInfo :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | deliveryType |
String [1..20] | Mode de livraison. |
| Obligatoire | country |
String [2] | Code de pays de livraison à deux lettres. |
| Obligatoire | city |
String [0..40] | Ville de destination. |
| Obligatoire | postAddress |
String [1..255] | Adresse de livraison. |
Description des paramètres dans l'objet cartItems :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | items |
Object | Élément du tableau avec les attributs de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet items :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | positionId |
Integer [1..12] | Identifiant unique de la position de marchandise dans le panier. |
| Obligatoire | name |
String [1..255] | Désignation ou description de la position tarifaire sous forme libre. |
| Facultatif | itemDetails |
Object | Objet avec les paramètres de description de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Obligatoire | quantity |
Object | Élément décrivant la quantité totale des positions de marchandises d'un même positionId et ses unités de mesure. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | itemAmount |
Integer [1..12] | Montant du coût de toutes les positions de marchandises d'un positionId dans les unités minimales de la devise. itemAmount est obligatoire à transmettre, seulement si le paramètre itemPrice n'a pas été transmis. Dans le cas contraire, la transmission d'itemAmount n'est pas requise. Si dans la requête les deux paramètres sont transmis : itemPrice et itemAmount, alors itemAmount doit être égal à itemPrice * quantity, dans le cas contraire la requête se terminera avec une erreur. |
| Facultatif | itemPrice |
Integer [1..18] | Montant du coût de la position de marchandise d'un positionId en argent dans les unités minimales de devise. |
| Facultatif | depositedItemAmount |
String [1..18] | Montant de débit pour un positionId en unités minimales de devise (par exemple, en centimes). |
| Facultatif | itemCurrency |
Integer [3] | Code de devise ISO 4217. Si non spécifié, considéré comme égal à la devise de la commande. |
| Obligatoire | itemCode |
String [1..100] | Numéro (identifiant) de la position de marchandise dans le système du magasin. |
Description des paramètres dans l'objet itemDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | itemDetailsParams |
Object | Paramètre décrivant les informations supplémentaires sur la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet itemDetailsParams :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
String [1..2000] | Informations supplémentaires sur la position de marchandise. |
| Obligatoire | name |
String [1..255] | Dénomination du paramètre de description de la détaillisation de la position de marchandise |
Description des paramètres dans l'objet quantity :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
Number [1..18] | Quantité de positions de marchandises de ce positionId. Pour indiquer les nombres fractionnaires, utilisez le point décimal. Maximum 3 chiffres après le point sont autorisés. |
| Obligatoire | measure |
String [1..20] | Unité de mesure de la quantité par position. |
Valeurs possibles de tii (Pour plus de détails sur les types de liaisons supportés par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Sauvegarde des données de carte après la transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non planifié (CIT) | Ultérieure | Acheteur | Le client choisit la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| U | Paiement non planifié (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| RI | Initiateur - Récurrents (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| R | Paiement récurrent (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération récurrente utilisant une liaison sauvegardée. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| I | Paiement échelonné (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération d'échelonnement utilisant une liaison sauvegardée. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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 clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}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 :
|
| Facultatif | error |
String [1..512] | Message d'erreur (si une erreur a été retournée dans la réponse) dans la langue transmise dans la requête. |
| Facultatif | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | info |
String | En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
|
| 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 | 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. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
| Condition | orderStatus |
Object | Contient les paramètres de statut de la commande et n'est retourné que si la passerelle de paiement a reconnu tous les paramètres de la requête comme corrects. Voir description ci-dessous. |
Lorsque l'authentification utilisant le protocole 3DS v2.0 est nécessaire, les paramètres suivants seront reçus en réponse à la requête :
| 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). |
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). |
Le bloc orderStatus contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | 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 est une description de l'erreur en cas de survenue d'erreur. La valeur ErrorMessage peut varier, par conséquent il ne faut pas référencer explicitement ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | OrderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| 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 | expiration |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de carte (le cas échéant). |
| Facultatif | approvedAmount |
Integer [0..12] | Montant en unités minimales de devise (par exemple, en centimes) qui a été bloqué sur le compte de l'acheteur. Utilisé uniquement dans les paiements en deux étapes. En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Facultatif | depositAmount |
Integer [1..12] | Montant du prélèvement en unités minimales de la devise (par exemple, en centimes). En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| 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 | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Facultatif | authCode |
Integer [6] | Paramètre obsolète (non utilisé). Sa valeur est toujours 2 indépendamment du statut de la commande et du code d'autorisation du système de traitement. |
| Facultatif | Pan |
String [1..19] | Numéro de carte masqué qui a été utilisé pour le paiement. Spécifié uniquement après le paiement de la commande. Lors du paiement Apple Pay, DPAN est utilisé. Il s'agit d'un numéro lié à l'appareil mobile de l'acheteur et qui remplit les fonctions du numéro de carte de paiement dans le système Apple Pay. |
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | Ip |
String [1..39] | Adresse IP du payeur. IPv6 est pris en charge dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | originalActionCode |
String [1..15] | Code de réponse reçu du processing. Pour activer la réception de ce champ, contactez le service de support technique. |
| Facultatif | rrn |
Integer [1..12] | Reference Retrieval Number - identifiant de transaction attribué par la banque acquéreuse. |
| 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 l'exécution de la première transaction (par exemple, un achat). Lors de l'exécution d'une opération inverse (remboursement, chargeback, paiement répété), ce numéro :
|
- Si
errorCode<> 0, la transaction doit être rejetée. - Si
errorCode= 0 etorderStatusn'est pas (1,2), la transaction doit être rejetée. - Si
errorCode= 0 etorderStatus= 1 ou 2 etacsUrla une valeur null, la transaction est confirmée. - Si
errorCode= 0 etorderStatus= 0, etacsUrln'est pas null, la transaction doit être rejetée. - Si
errorCode= 0 etorderStatus= 0 etacsUrln'est pas null, le scénario 3DS doit être initié.
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/instantPayment.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data amount=100 \
--data currency=978 \
--data description=my_first_order \
--data orderNumber=1218637308 \
--data pan=4000001111111118 \
--data cvc=123 \
--data expiry=203012 \
--data cardHolderName="TEST CARDHOLDER" \
--data email="demo@example.com" \
--data phone="+449998887766" \
--data language=en \
--data returnUrl=https://mybestmerchantreturnurl.com \
--data failUrl=https://mybestmerchantreturnurl.comExemple de réponse
{
"errorCode": "0",
"orderId": "eee72f6e-b980-79c5-92e8-6f4200b1eae0",
"info": "Your order is proceeded, redirecting...",
"redirect": "https://www.test.com/payment/merchants/gateway/finish.html?orderId=eee72f6e-b980-79c5-92e8-6f4200b1eae0&lang=en",
"orderStatus": {
"expiration": "202412",
"cardholderName": "TEST CARDHOLDER",
"depositAmount": 100,
"currency": "978",
"approvalCode": "123456",
"authCode": 2,
"originalActionCode": "S1",
"rrn": "311489272111",
"ErrorCode": "0",
"ErrorMessage": "Success",
"OrderStatus": 2,
"OrderNumber": "2011",
"Pan": "500000**1115",
"Amount": 100,
"Ip": "x.x.x.x"
}
}Paiement MOTO
Pour effectuer des paiements MOTO, utilisez la méthode https://dev.bpcbt.com/payment/rest/motoPayment.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 requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Facultatif | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Facultatif | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| Facultatif | 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). |
| 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. |
| 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 | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 effectuer un paiement MOTO au nom d'un autre marchand, spécifiez dans ce paramètre le login du compte API du vendeur. 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 | postAddress |
String [1..255] | Adresse de livraison. |
| Facultatif | jsonParams |
Object | Ensemble d'attributs supplémentaires de forme arbitraire, structure:jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Certains attributs prédéfinis jsonParams:
|
| Facultatif | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| 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. |
| Conditionnel | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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. |
| 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 | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Obligatoire | pan |
String [1..19] | Numéro de carte masqué qui a été utilisé pour le paiement. Ce paramètre n'est spécifié qu'après le paiement de la commande. Lors du paiement via Apple Pay, le DPAN est utilisé comme numéro de carte - c'est un numéro lié à l'appareil mobile du client, qui fonctionne comme un numéro de carte de paiement dans le système Apple Pay. |
| Obligatoire | expiry |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. Obligatoire si ni seToken, ni bindingId ne sont transmis. |
| Obligatoire | cardholder |
String [1..26] | Nom du porteur de la carte en lettres latines. Ce paramètre n'est transmis qu'après le paiement de la commande. |
| Facultatif | cvc |
String [3] | La transmission du paramètre est déterminée par le type de paiement :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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. |
| Obligatoire | mdOrder |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | userMessage |
String [1..512] | Message à l'utilisateur avec description du code de résultat. |
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). |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/motoPayment.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=2000 \
--data currency=978 \
--data userName=test_user \
--data password=test_user_password \
--data returnUrl=https://mybestmerchantreturnurl.com \
--data description=my_first_order \
--data pan=4000001111111118 \
--data expiry=203012 \
--data cvc=123 \
--data cardholder="TEST CARDHOLDER" \
--data language=enExemple de réponse - paiement réussi
{
"errorCode":"0",
"success":true,
"mdOrder":"088433e9-e34d-769e-9366-696200a7d8c0",
"orderNumber":"62001"
}Redirection vers ACS (simplifiée)
Si 3-D Secure est requis, alors après avoir reçu la réponse à la demande de paiement, le client doit être redirigé vers ACS. Dans ce cas, la réponse à la demande de paiement contient le paramètre acsUrl, qui sera utilisé pour la redirection.
La requête https://dev.bpcbt.com/payment/acsRedirect.do?orderId={orderId} permet de rediriger le client vers la page d'authentification ACS de manière simplifiée - en utilisant simplement le paramètre orderId, obtenu après l'enregistrement de la commande.
Il est également possible de rediriger le client vers ACS à l'aide d'une requête POST (redirection habituelle). La description de cette méthode est disponible ici.
Sans aucune autre action requise de la part du client, la passerelle de paiement le redirige vers la page ACS, où le client s'authentifie.
Ensuite, selon le résultat de l'authentification, le client est redirigé vers l'URL suivante :
- si l'authentification s'est déroulée avec succès -
returnUrlavec le paramètreorderIdajouté ; - si l'authentification a échoué -
failUrl(oureturnUrl, sifailUrln'a pas été transmis) avec le paramètreorderIDajouté.
Pour rediriger le client vers ACS, utilisez l'URL suivante :
https://dev.bpcbt.com/payment/acsRedirect.do?orderId={Numéro de commande dans la passerelle de paiement}
Paramètres de requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
Paramètres de réponse
Exemple
Exemple de requête
curl -X GET https://dev.bpcbt.com/payment/acsRedirect.do?orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1
Exemple d'URL de redirection
https://mybestmerchantreturnurl.com/?orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1
Portefeuilles
Enregistrement de commande Apple Pay
Pour l'enregistrement et le paiement de la commande, la méthode https://dev.bpcbt.com/payment/applepay/payment.do est utilisée.
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 | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | additionalParameters |
Object | Paramètres supplémentaires de la commande, qui sont stockés dans le compte personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"} Lors de la création d'une liaison dans cette balise, des paramètres définissant le type de liaison créée peuvent être transmis. Voir liste des paramètres. |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Obligatoire | paymentToken |
String [1..8192] | Le paramètre paymentToken doit contenir la valeur déchiffrée et encodée en Base64 de la propriété paymentData, obtenue de l'objet PKPaymentToken Object du système Apple Pay (voir plus de détails dans la documentation Apple Pay). Ainsi, pour faire une demande de paiement à la passerelle de paiement, le vendeur doit :
|
| Facultatif | tii |
String | Identifiant de l'initiateur de la transaction. Paramètre indiquant quel type d'opération sera effectuée par l'initiateur (Client ou Marchand). Valeurs possibles. |
| Conditionnel | 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. |
| Conditionnel | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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 | phone |
String [7..15] | Numéro de téléphone du propriétaire de la carte. Il est nécessaire de toujours indiquer le code 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 propriétaire de la carte. |
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
Paramètres supplémentaires définissant le type de liaison créée et transmis dans additionalParameters :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | installments |
Integer [3] | Nombre maximum d'autorisations autorisées pour les paiements en plusieurs fois. Spécifié lors de la création d'une liaison pour effectuer des paiements en plusieurs fois. |
| Condition | recurringFrequency |
Integer [2] | Nombre minimum de jours entre les autorisations. Nombre entier positif de 1 à 28 inclus. Spécifié en cas de création d'une liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création d'une liaison pour l'exécution de paiements en plusieurs fois lors de l'activation de 3DS2. |
| Condition | recurringExpiry |
String [8] | Date après laquelle les autorisations ultérieures ne doivent pas être exécutées. Format : YYYYMMDD. Indiqué en cas de création de liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création de liaison pour l'exécution de paiements à tempérament avec 3DS2 activé. |
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour transaction | Sauvegarde des données de carte après transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. Cette valeur ne peut être transmise qu'en présence de l'autorisation "Création autorisée de liaisons vendor pays common". |
| RI | Initiateur - Récurrentes (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Conditionnel | data |
Object | Ce paramètre est retourné uniquement en cas de traitement réussi du paiement. Voir description ci-dessous. |
| Conditionnel | error |
Object | Ce paramètre est retourné uniquement en cas d'erreur de paiement. Voir description ci-dessous. |
| Conditionnel | orderStatus |
Object | Contient les paramètres de statut de commande et est retourné uniquement si la passerelle de paiement a reconnu tous les paramètres de requête comme corrects. Voir description ci-dessous. |
Le bloc data contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
Le bloc error contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. | |
description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. | |
message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. | |
Le bloc orderStatus contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| 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 | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Facultatif | actionCodeDescription |
String [1..512] | Description de actionCode, retournée par le système de traitement de la banque. |
| 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 | date |
Integer | Date d'enregistrement de la commande comme nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Conditionnel | merchantOrderParams |
Object | Objet avec des attributs dans lesquels sont transmis des paramètres supplémentaires du marchand. Voir description ci-dessous. |
| Conditionnel | attributes |
Object | Attributs de la commande dans le système de paiement (numéro de commande). Voir description ci-dessous. |
| Conditionnel | cardAuthInfo |
Object | Informations sur la carte de paiement de l'acheteur. Voir description ci-dessous. |
| Facultatif | authDateTime |
Integer | Date et heure d'autorisation, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | terminalId |
String [1..10] | Identifiant du terminal dans le système qui traite le paiement. |
| Facultatif | authRefNum |
String [1..24] | Numéro d'autorisation du paiement, qui lui est attribué lors de l'enregistrement du paiement. |
| Conditionnel | paymentAmountInfo |
Object | Paramètre contenant des paramètres imbriqués avec des informations sur les montants de confirmation, de débit et de remboursement. Voir description ci-dessous. |
| Conditionnel | bankInfo |
Object | Contient le paramètre imbriqué bankCountryName. Voir description ci-dessous. |
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). |
Le bloc merchantOrderParams contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | name |
String [1..255] | Nom du paramètre supplémentaire du marchand. |
| Obligatoire | value |
String [1..1024] | Valeur du paramètre supplémentaire du vendeur - jusqu'à 1024 caractères. |
Le bloc attributes contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | name |
String [1..255] | Nom du paramètre supplémentaire. |
| Obligatoire | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
Le bloc cardAuthInfo contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | expiration |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. |
| Obligatoire | cardholderName |
String [1..26] | Nom du porteur de carte en lettres latines. Caractères autorisés : lettres latines, point, espace. |
| Obligatoire | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Obligatoire | pan |
String [1..19] | DPAN masqué : numéro lié à l'appareil mobile de l'acheteur et remplissant les fonctions de numéro de carte de paiement dans le système Apple Pay. |
| 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. |
Le bloc paymentAmountInfo contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | paymentState |
String | État de la commande, le paramètre peut prendre les valeurs suivantes :
|
| Obligatoire | approvedAmount |
Integer [0..12] | Montant en unités minimales de devise (par exemple, en centimes) qui a été bloqué sur le compte de l'acheteur. Utilisé uniquement dans les paiements en deux étapes. En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Obligatoire | depositedAmount |
Integer [1..12] | Montant du débit en unités minimales de devise (par exemple, en centimes). En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Obligatoire | refundedAmount |
Integer [1..12] | Montant du remboursement dans les unités minimales de la devise. |
Le bloc bankInfo contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | bankCountryName |
String [1..160] | Pays de la banque émettrice. |
- Si
success=trueetorderStatus.orderStatus=1ou2, alors la transaction est confirmée. - Si
success=trueetorderStatus.orderStatus<>1ou2, alors la transaction est rejetée. - Si
success=falseouerrorCode<>0, alors la transaction est rejetée.
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/applepay/payment.do \
--header 'Content-Type: application/json' \
--data-raw '{
"additionalParameters" : {
"phone" : "9521235847",
"order-pain" : "111",
"email" : "apple@pay.com"
},
"language" : "en",
"clientId" : "259753456",
"orderNumber" : "281477871",
"paymentToken" : "eyJkYXRhIjoiYPhK3M1bEtm...YjM2NWMzZWNmYjE5fIkVDX3YxIn0=",
"preAuth" : false
}'Réponse en cas de paiement réussi
{
"success": true,
"data": {
"orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
},
"orderStatus": {
"errorCode": "0",
"orderNumber": "229",
"orderStatus": 1,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 960000,
"currency": "978",
"date": 1478682458102,
"ip": "x.x.x.x",
"merchantOrderParams": [
{
"name": "param2",
"value": "param2"
},
{
"name": "param1",
"value": "param1"
}
],
"attributes": [
{
"name": "mdOrder",
"value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
}
],
"cardAuthInfo": {
"expiration": "203012",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"pan": "500000**1115"
},
"authDateTime": 1478682459082,
"terminalId": "12345678",
"authRefNum": "111111111111",
"paymentAmountInfo": {
"paymentState": "APPROVED",
"approvedAmount": 960000,
"depositedAmount": 0,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryName": "<UNKNOWN>"
}
}
}Réponse en cas de paiement échoué
{
"error": {
"code": 10,
"description": "Processing Error",
"message": "Auth is invalid"
},
"success": false
}Apple Pay Direct
Requête utilisée pour effectuer un paiement direct via Apple Pay - https://dev.bpcbt.com/payment/applepay/paymentDirect.do. Elle est utilisée pour enregistrer et payer une commande.
Cette requête peut être utilisée pour les intégrations supposant le déchiffrement des données de paiement côté marchand.
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..100] | 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. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | 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 | 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. |
| Facultatif | additionalParameters |
Object | Paramètres supplémentaires de la commande qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"} Lors de la création d'une liaison dans ce tag peuvent être transmis des paramètres définissant le type de liaison créée. Voir liste des paramètres. |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Obligatoire | paymentToken |
String [1..8192] | Données de paiement obtenues d'Apple Pay et déchiffrées par le marchand. Séquence d'actions :
|
| Facultatif | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Facultatif | features |
String | Dans ce paramètre, il est possible de transmettre la valeur VERIFY. Dans ce cas, le paiement ne sera pas effectué, à la place une liaison sera créée (la carte du client sera sauvegardée).Si features est transmis, paymentToken.transactionAmount doit être 0. Dans le cas contraire, une erreur sera retournée. |
| Conditionnel | 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 | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Marchand). Valeurs possibles. |
| 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. |
| Conditionnel | originalPaymentDate |
String | Date de la transaction initiale. Valeur au format Unix timestamp en millisecondes. Transmise si la valeur du paramètre tii = R,U ou F. |
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| Conditionnel | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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 marchand côté Passerelle de Paiement. Voir paramètres imbriqués. |
| 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 :
|
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour transaction | Sauvegarde des données de carte après transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. Cette valeur ne peut être transmise qu'en présence de l'autorisation "Création autorisée de liaisons vendor pays common". |
| RI | Initiateur - Récurrentes (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
Paramètres supplémentaires définissant le type de liaison créée et transmis dans additionalParameters :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | installments |
Integer [3] | Nombre maximum d'autorisations autorisées pour les paiements en plusieurs fois. Spécifié lors de la création d'une liaison pour effectuer des paiements en plusieurs fois. |
| Condition | recurringFrequency |
Integer [2] | Nombre minimum de jours entre les autorisations. Nombre entier positif de 1 à 28 inclus. Spécifié en cas de création d'une liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création d'une liaison pour l'exécution de paiements en plusieurs fois lors de l'activation de 3DS2. |
| Condition | recurringExpiry |
String [8] | Date après laquelle les autorisations ultérieures ne doivent pas être exécutées. Format : YYYYMMDD. Indiqué en cas de création de liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création de liaison pour l'exécution de paiements à tempérament avec 3DS2 activé. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Obligatoire | data |
Object | Retourné uniquement en cas de paiement réussi. |
| Obligatoire | error |
Object | Ce paramètre n'est retourné qu'en cas d'erreur de paiement. |
| 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 :
|
Paramètres dans le bloc data :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
Paramètres dans le bloc error :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
Paramètres dans le bloc orderStatus :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| 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 | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Facultatif | actionCodeDescription |
String [1..512] | Description de actionCode, retournée par le système de traitement de la banque. |
| 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 | date |
Integer | Date d'enregistrement de la commande comme nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | merchantOrderParams |
Object | Section avec attributs dans laquelle sont transmis les paramètres supplémentaires du marchand. |
| Facultatif | cardAuthInfo |
Object | Bloc avec les données sur la carte du payeur voir paramètres imbriqués. |
| Facultatif | authDateTime |
Integer | Date et heure d'autorisation, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | terminalId |
String [1..10] | Identifiant du terminal dans le système qui traite le paiement. |
| Facultatif | authRefNum |
String [1..24] | Numéro d'autorisation du paiement, qui lui est attribué lors de l'enregistrement du paiement. |
| Facultatif | paymentAmountInfo |
Object | Objet avec des informations sur les montants de confirmation, de débit, de remboursement. Voir la liste des paramètres imbriqués ci-dessous. |
| Facultatif | bankInfo |
Object | Objet contenant le paramètre imbriqué bankCountryName, dans lequel est transmis le nom du pays de la banque émettrice (le cas échéant). La langue utilisée correspond à la langue transmise dans le paramètre de requête language. Si la langue n'est pas transmise, la langue de l'utilisateur appelant la méthode sera utilisée. |
Le bloc orderStatus peut également inclure l'élément payerData, qui 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). |
Paramètres dans le bloc cardAuthInfo :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | expiration |
Integer | Année et mois d'expiration de la carte. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de carte (le cas échéant). |
| Facultatif | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Facultatif | pan |
String [1..19] | DPAN masqué : numéro lié à l'appareil mobile de l'acheteur et remplissant les fonctions de numéro de carte de paiement dans le système Apple Pay. |
| 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. |
Paramètres dans le bloc paymentAmountInfo :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | paymentState |
String | État de la commande, le paramètre peut prendre les valeurs suivantes :
|
| Facultatif | approvedAmount |
Integer [0..12] | Montant en unités minimales de devise (par exemple, en centimes) qui a été bloqué sur le compte de l'acheteur. Utilisé uniquement dans les paiements en deux étapes. En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Facultatif | depositedAmount |
Integer [1..12] | Montant du débit en unités minimales de devise (par exemple, en centimes). En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Facultatif | refundedAmount |
Integer [1..12] | Montant du remboursement dans les unités minimales de la devise. |
| Facultatif | totalAmount |
Integer [1..20] | Montant de la commande plus commission, si elle existe. |
Exemples
Exemple de requête
curl --location --request POST 'https://dev.bpcbt.com/payment/applepay/paymentDirect.do' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "test_user",
"password": "test_user_password",
"orderNumber": "947664b3-4a42-4cdf-9f8c-2e9679bad9e4",
"description": "description of the order",
"language": "en",
"paymentToken": "eyJhcHBsaWNhPT...0ifX0="
}'Exemples de réponse - paiement réussi
{
"success": true,
"data": {
"orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
},
"orderStatus": {
"errorCode": "0",
"orderNumber": "229",
"orderStatus": 1,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 960000,
"currency": "978",
"date": 1478682458102,
"ip": "x.x.x.x",
"merchantOrderParams": [
{
"name": "param2",
"value": "param2"
},
{
"name": "param1",
"value": "param1"
}
],
"attributes": [
{
"name": "mdOrder",
"value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
}
],
"cardAuthInfo": {
"expiration": "203012",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"pan": "500000**1115"
},
"authDateTime": 1478682459082,
"terminalId": "12345678",
"authRefNum": "111111111111",
"paymentAmountInfo": {
"paymentState": "APPROVED",
"approvedAmount": 960000,
"depositedAmount": 0,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryName": "<UNKNOWN>"
}
}
}Exemple de réponse - erreur de paiement
{
"error": {
"code": 1,
"description": "Processing Error",
"message": "Insufficient amount on card"
},
"success": false
}Enregistrement de commande Google Pay
Pour l'enregistrement et le paiement de commande, la requête https://dev.bpcbt.com/payment/google/payment.do est utilisée.
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 | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | additionalParameters |
Object | Paramètres supplémentaires de la commande qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"} Lors de la création d'une liaison dans ce tag peuvent être transmis des paramètres définissant le type de liaison créée. Voir liste des paramètres. |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Obligatoire | 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 | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera effectué par l'initiateur (Client ou Marchand). Valeurs possibles. |
| Obligatoire | paymentToken |
String [1..8192] | Jeton obtenu de Google Pay et encodé en Base64. |
| Obligatoire | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currencyCode |
String [3] | Code numérique de la devise de paiement ISO 4217. |
| 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 | 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. |
| Condition | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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. |
| 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 :
|
| Facultatif | clientBrowserInfo |
Object | Bloc de données sur le navigateur du client, qui est envoyé vers ACS durant l'authentification 3DS. Ce bloc peut être transmis uniquement si un paramétrage spécial est activé (contactez l'équipe de support). Voir paramètres imbriqués. |
Lors de l'authentification par protocole 3DS2, les paramètres suivants sont également transmis :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| 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. |
| Facultatif | threeDSMethodNotificationUrl |
String [1..512] | URL pour l'envoi de la notification de passage de la vérification sur ACS. |
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour transaction | Sauvegarde des données de carte après transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. Cette valeur ne peut être transmise qu'en présence de l'autorisation "Création autorisée de liaisons vendor pays common". |
| RI | Initiateur - Récurrentes (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
Paramètres supplémentaires définissant le type de liaison créée et transmis dans additionalParameters :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | installments |
Integer [3] | Nombre maximum d'autorisations autorisées pour les paiements en plusieurs fois. Spécifié lors de la création d'une liaison pour effectuer des paiements en plusieurs fois. |
| Condition | recurringFrequency |
Integer [2] | Nombre minimum de jours entre les autorisations. Nombre entier positif de 1 à 28 inclus. Spécifié en cas de création d'une liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création d'une liaison pour l'exécution de paiements en plusieurs fois lors de l'activation de 3DS2. |
| Condition | recurringExpiry |
String [8] | Date après laquelle les autorisations ultérieures ne doivent pas être exécutées. Format : YYYYMMDD. Indiqué en cas de création de liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création de liaison pour l'exécution de paiements à tempérament avec 3DS2 activé. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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 clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Condition | data |
Object | Ce paramètre est retourné seulement en cas de traitement réussi du paiement. Voir description ci-dessous. |
| Condition | error |
Object | Ce paramètre est retourné seulement en cas d'erreur de paiement. Voir description ci-dessous. |
Le bloc data contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | termUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. Il s'agit de l'URL vers laquelle l'ACS redirige le porteur de carte après authentification. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | 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 | 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. |
Le bloc data peut inclure encore l'élément payerData, qui 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). |
Si le protocole 3DS2 est utilisé, la réponse à la requête inclut également les paramètres suivants dans le bloc data :
| 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. |
| Optionnel | 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). |
Le bloc error contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
Utilisez la requête getOrderStatusExtended.do, pour vérifier le statut de la transaction.
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/google/payment.do \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant": "OurBestMerchantLogin",
"orderNumber": "UAF-203974-DE",
"language": "EN",
"preAuth": true,
"description" : "Test description",
"additionalParameters":
{
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=",
"ip" : "127.0.0.1",
"amount" : "230000",
"currencyCode" : 643,
"failUrl" : "https://mybestmerchantfailurl.com"
"returnUrl" : "https://mybestmerchantreturnurl.com"
}'Exemple de réponse
{
"success":true,
"data": {
"orderId": "12312312123"
"is3DSVer2": true,
"threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
"threeDSMethodURLServer": "https://test.com/3dsserver/gatherClientInfo?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134"
}
}Google Pay Direct
Requête utilisée pour le paiement direct via Google Pay -https://dev.bpcbt.com/payment/google/paymentDirect.do. Elle est utilisée pour l'enregistrement et le paiement de la commande.
Cette requête peut être utilisée pour les intégrations qui prévoient le déchiffrement des données de paiement du côté du marchand.
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 | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | additionalParameters |
Object | Paramètres supplémentaires de la commande, qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"} Lors de la création d'une liaison dans ce tag peuvent être transmis des paramètres définissant le type de liaison créée. Voir liste des paramètres. |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| 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 | protocolVersion |
String | Version du protocole définie par Google pour le jeton de paiement : ECv1 (par défaut) ou ECv2
|
| Obligatoire | paymentToken |
String [1..8192] | Données de paiement obtenues de Google Pay et déchiffrées par le marchand. Séquence d'actions :
|
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | currencyCode |
String [3] | Code numérique de la devise de paiement ISO 4217. |
| 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 | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Facultatif | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Facultatif | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Marchand). Valeurs possibles. |
| 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 | originalPaymentNetRefNum |
String | Identifiant de la transaction originale ou précédente réussie dans le système de paiement par rapport à l'opération effectuée par liaison - TRN ID. Transmis si la valeur du paramètre tii = R,U ou F.Obligatoire lors de l'utilisation des liaisons du marchand dans les transferts par liaison. |
| Conditionnel | originalPaymentDate |
String | Date de la transaction initiale. Valeur au format Unix timestamp en millisecondes. Transmise si la valeur du paramètre tii = R,U ou F. |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| Conditionnel | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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 marchand du côté de la Passerelle de Paiement. Voir paramètres imbriqués. |
| 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 :
|
| Facultatif | clientBrowserInfo |
Object | Bloc de données sur le navigateur du client, qui est envoyé à ACS lors de l'authentification 3DS. Ce bloc peut être transmis uniquement si un paramètre spécial est activé (contactez l'équipe de support). Voir paramètres imbriqués. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour transaction | Sauvegarde des données de carte après transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. Cette valeur ne peut être transmise qu'en présence de l'autorisation "Création autorisée de liaisons vendor pays common". |
| RI | Initiateur - Récurrentes (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
Paramètres supplémentaires définissant le type de liaison créée et transmis dans additionalParameters :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | installments |
Integer [3] | Nombre maximum d'autorisations autorisées pour les paiements en plusieurs fois. Spécifié lors de la création d'une liaison pour effectuer des paiements en plusieurs fois. |
| Condition | recurringFrequency |
Integer [2] | Nombre minimum de jours entre les autorisations. Nombre entier positif de 1 à 28 inclus. Spécifié en cas de création d'une liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création d'une liaison pour l'exécution de paiements en plusieurs fois lors de l'activation de 3DS2. |
| Condition | recurringExpiry |
String [8] | Date après laquelle les autorisations ultérieures ne doivent pas être exécutées. Format : YYYYMMDD. Indiqué en cas de création de liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création de liaison pour l'exécution de paiements à tempérament avec 3DS2 activé. |
Ci-dessous sont présentés les paramètres du bloc clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}Si 3DS2 est utilisé, il est également nécessaire de transmettre les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| 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. |
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| 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 | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Obligatoire* | data |
Object | Retourné uniquement en cas de paiement réussi. |
| Obligatoire* | error |
Object | Ce paramètre n'est retourné qu'en cas d'erreur de paiement. |
Le bloc data contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Seulement si une authentification supplémentaire sur ACS de la banque émettrice est utilisée | 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. |
| Seulement si une authentification supplémentaire sur ACS de la banque émettrice est utilisée | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Seulement si l'authentification supplémentaire sur ACS de la banque émettrice est utilisée | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
| Le paramètre est retourné si des liaisons sont utilisées | 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 | 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. |
Le bloc data peut également inclure l'élément payerData, qui contient les paramètres suivants.
| Caractère 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). |
Si le protocole 3DS2 est utilisé, la réponse à la requête inclut également les paramètres suivants dans le bloc data :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | is3DSVer2 |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient de 3DS2. |
| Obligatoire | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSMethodUrl |
String [1..512] | URL du serveur ACS pour la collecte des données du navigateur. |
| Facultatif | 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). |
Paramètres dans le bloc error :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/google/paymentDirect.do \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": "1000",
"orderNumber": "350467565",
"features": [""],
"language": "EN",
"password": "test_user_password",
"paymentToken": "eyJnYXRldTWVY2hRJ...b25ZZWFyyMD0fX0=",
"preAuth": true,
"returnUrl": "https://mybestmerchantreturnurl.com",
"username": "test_user"
}'Exemple de réponse
{
"success": true,
"data": {
"orderId": "12312312123"
}
}Enregistrement de commande Samsung Pay
Pour l'enregistrement et le paiement de commande Samsung Pay, la requête https://dev.bpcbt.com/payment/samsung/payment.do est utilisée. Voir "Coordonnées de connexion". Cette requête est utilisée uniquement lors du paiement depuis l'application mobile.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Ci-dessous est présenté un exemple de requête pour le paiement via Samsung Pay.
Paramètres de requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | additionalParameters |
Object | Paramètres supplémentaires de la commande, qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"} Lors de la création d'une liaison dans cette balise, des paramètres peuvent être transmis définissant le type de liaison créée. Voir liste des paramètres. |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| 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 | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération l'initiateur (Client ou Marchand) va exécuter. Valeurs possibles. |
| 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 | paymentToken |
String [1..8192] | Contenu du paramètre 3ds.data de la réponse reçue de Samsung Pay. |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | currencyCode |
String [3] | Code numérique de la devise de paiement ISO 4217. |
| Facultatif | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| 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 côté Passerelle de paiement. Voir paramètres imbriqués. |
| 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 :
|
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour transaction | Sauvegarde des données de carte après transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. Cette valeur ne peut être transmise qu'en présence de l'autorisation "Création autorisée de liaisons vendor pays common". |
| RI | Initiateur - Récurrentes (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
Paramètres supplémentaires définissant le type de liaison créée et transmis dans additionalParameters :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | installments |
Integer [3] | Nombre maximum d'autorisations autorisées pour les paiements en plusieurs fois. Spécifié lors de la création d'une liaison pour effectuer des paiements en plusieurs fois. |
| Condition | recurringFrequency |
Integer [2] | Nombre minimum de jours entre les autorisations. Nombre entier positif de 1 à 28 inclus. Spécifié en cas de création d'une liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création d'une liaison pour l'exécution de paiements en plusieurs fois lors de l'activation de 3DS2. |
| Condition | recurringExpiry |
String [8] | Date après laquelle les autorisations ultérieures ne doivent pas être exécutées. Format : YYYYMMDD. Indiqué en cas de création de liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création de liaison pour l'exécution de paiements à tempérament avec 3DS2 activé. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Conditionnel | data |
Object | Ce paramètre est retourné uniquement en cas de traitement réussi du paiement. Voir description ci-dessous. |
| Conditionnel | error |
Object | Ce paramètre est retourné uniquement en cas d'erreur de paiement. Voir description ci-dessous. |
Le bloc data contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Optional | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| Optional | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
Le bloc data peut encore inclure l'élément payerData, qui 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). |
Le bloc error contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
Exemples
Exemple de requête
curl --location --request POST 'https://dev.bpcbt.com/payment/samsung/payment.do' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant": "sandbox_merchant_test",
"orderNumber": "1218637308",
"language": "en",
"preAuth": true,
"description": "Test description",
"additionalParameters": {
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "ew0KICB7DQoJICA...0KICB9DQp9",
"ip": "x.x.x.x"
}'Réponse en cas de paiement réussi
{
"success":true,
"data": {
"orderId": "12312312123"
}
}Réponse en cas de paiement échoué
{
"error": {
"code": 1,
"description": "Processing Error",
"message": "Not enough money"
},
"success": false
}Samsung Pay Direct
Requête utilisée pour effectuer un paiement direct via Samsung Pay - https://dev.bpcbt.com/payment/samsung/paymentDirect.do. Elle est utilisée pour l'enregistrement et le paiement de la commande.
Cette requête peut être utilisée pour les intégrations impliquant le déchiffrement des données de paiement côté marchand.
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
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | 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. |
| Facultatif | additionalParameters |
Object | Paramètres supplémentaires de la commande, qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et de sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"} Lors de la création d'une liaison dans cette balise, des paramètres peuvent être transmis définissant le type de liaison créée. Voir liste des paramètres. |
| Facultatif | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| 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. |
| Obligatoire | paymentToken |
String [1..8192] | Jeton obtenu de Samsung Pay et encodé en Base64. Example: {"amount": "100", "currency_code": "USD", "utc": "1490687350988", "eci_indicator": "07", "tokenPAN": "5599014702854883", "tokenPanExpiration": "0420", "cryptogram": "ACF9prZs2wsTAAGysReaAoACFA=="} |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera effectuée par l'initiateur (Client ou Marchand). Valeurs possibles. |
| 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 | 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 | originalPaymentDate |
String | Date de la transaction initiale. Valeur au format Unix timestamp en millisecondes. Transmise si la valeur du paramètre tii = R,U ou F. |
| Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| Facultatif | billingPayerData |
Object | Bloc avec les données d'enregistrement du client (adresse, code postal), nécessaire pour la vérification d'adresse dans le cadre des services AVS/AVV. Obligatoire si la fonction est activée pour le marchand côté Passerelle de Paiement. Voir paramètres imbriqués. |
| 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 :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour transaction | Sauvegarde des données de carte après transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. Cette valeur ne peut être transmise qu'en présence de l'autorisation "Création autorisée de liaisons vendor pays common". |
| RI | Initiateur - Récurrentes (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
Paramètres supplémentaires définissant le type de liaison créée et transmis dans additionalParameters :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | installments |
Integer [3] | Nombre maximum d'autorisations autorisées pour les paiements en plusieurs fois. Spécifié lors de la création d'une liaison pour effectuer des paiements en plusieurs fois. |
| Condition | recurringFrequency |
Integer [2] | Nombre minimum de jours entre les autorisations. Nombre entier positif de 1 à 28 inclus. Spécifié en cas de création d'une liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création d'une liaison pour l'exécution de paiements en plusieurs fois lors de l'activation de 3DS2. |
| Condition | recurringExpiry |
String [8] | Date après laquelle les autorisations ultérieures ne doivent pas être exécutées. Format : YYYYMMDD. Indiqué en cas de création de liaison pour l'exécution de paiements récurrents. Obligatoire à transmettre en cas de création de liaison pour l'exécution de paiements à tempérament avec 3DS2 activé. |
Paramètres de réponse
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Obligatoire* | data |
Object | Retourné uniquement en cas de paiement réussi. |
| Obligatoire* | error |
Object | Ce paramètre n'est retourné qu'en cas d'erreur de paiement. |
Le bloc data contient les éléments suivants.
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Le paramètre est retourné si des liaisons sont utilisées | 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 | 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. |
Le bloc data peut encore inclure l'élément payerData, qui contient les paramètres suivants.
| Obligation | 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). |
Paramètres dans le bloc error :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/samsung/paymentDirect.do \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant": "OurBestMerchantLogin",
"orderNumber": "UAF-203974-DE",
"language": "EN",
"preAuth": true,
"description" : "Test description",
"additionalParameters":
{
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "ew0KICB7DQoJICA...0KICB9DQp9",
"ip" : "127.0.0.1"
}'Exemples de réponse - paiement réussi
{
"success": true,
"data": {
"orderId": "12312312123"
}
}Exemple de réponse - erreur de paiement
{
"error": {
"code": 1,
"description": "Processing Error",
"message": "Insufficint amount on card"
},
"success": false
}Paiement tokenisé
Requête universelle de paiement pour les méthodes de paiement tokenisées – https://dev.bpcbt.com/payment/token/payment.do.
Cette requête ne peut être utilisée que si vous disposez d'une autorisation spéciale dans la Passerelle de paiement. Contactez le service de support technique pour plus de détails.
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..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | merchant |
String [1..255] | Pour enregistrer et payer une commande au nom d'un autre marchand, spécifiez son identifiant (pour le compte API) dans ce paramètre. Ne peut être utilisé que si vous avez l'autorisation de visualiser les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Obligatoire | 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 | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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. |
| Obligatoire | tokenType |
String | Valeurs possibles :
|
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Condition | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. Doit être transmis dans la demande de paiement répétée (après l'exécution de 3DS-method). |
| Facultatif | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | 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 | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Condition | cvc |
String [3] | La transmission du paramètre est déterminée par le type de paiement :
|
| Facultatif | cardHolderName |
String [1..26] | Nom du titulaire de la carte en lettres latines. Ce paramètre n'est transmis qu'après le paiement de la commande. |
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| 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 | jsonParams |
Object | Balise supplémentaire avec attributs pour la transmission de paramètres additionnels. Voir ci-dessous. |
| Facultatif | features |
String | Fonctions de la commande. Les valeurs possibles sont listées ci-dessous.
|
| 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 | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Marchand). Valeurs possibles |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de 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. |
| 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. |
| Obligatoire | paymentData |
object | Contient les informations de paiement reçues du service de tokenisation. Voir paramètres inclus |
| 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 marchand du côté de la Passerelle de paiement. Voir paramètres imbriqués. |
| 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 :
|
| Facultatif | clientBrowserInfo |
Object | Bloc de données sur le navigateur du client, qui est envoyé à ACS lors de l'authentification 3DS. Ce bloc ne peut être transmis que si un paramètre spécial est activé (contactez l'équipe de support). Voir paramètres imbriqués. |
Le bloc jsonParams contient les champs d'informations supplémentaires pour le stockage ultérieur. Pour transmettre N paramètres, la requête doit contenir N balises jsonParams, où l'attribut name contient le nom, et l'attribut value contient la valeur (voir le tableau ci-dessous).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | name |
String [1..255] | Nom du paramètre supplémentaire. |
| Obligatoire | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
Ci-dessous sont énumérés les paramètres du bloc paymentData
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | dpan |
String [1..19] | Numéro de jeton. |
| Condition | tokenCryptogram |
String [1..1024] | Cryptogramme obtenu du service de tokenisation. Dans certains cas, le paramètre peut être absent (par exemple, pour les transactions MIT VTS). |
| Obligatoire | MM |
Integer [2] | Mois d'expiration du jeton. |
| Obligatoire | YYYY |
Integer [4] | Année d'expiration du jeton. |
| Facultatif | eci |
Integer [1..4] | Indicateur de commerce électronique. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. Ci-dessous se trouve le décodage des codes ECI.
|
Valeurs possibles de tii (Pour plus de détails sur les types de liaisons supportés par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Sauvegarde des données de carte après la transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non planifié (CIT) | Ultérieure | Acheteur | Le client choisit la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| U | Paiement non planifié (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| RI | Initiateur - Récurrents (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| R | Paiement récurrent (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération récurrente utilisant une liaison sauvegardée. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| I | Paiement échelonné (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération d'échelonnement utilisant une liaison sauvegardée. |
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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 clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Condition | data |
Object | Ce paramètre n'est retourné qu'en cas de traitement réussi du paiement. Voir description ci-dessous. |
| Condition | error |
Object | Ce paramètre n'est retourné qu'en cas d'erreur de paiement. Voir description ci-dessous. |
| Conditionnel | orderStatus |
Object | Contient les paramètres du statut de commande et n'est retourné que si la passerelle de paiement a reconnu tous les paramètres de la requête comme corrects. Voir la description ci-dessous. |
Le bloc data contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | termUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. Il s'agit de l'URL vers laquelle l'ACS redirige le porteur de carte après authentification. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
Si le protocole 3DS2 est utilisé, la réponse à la requête inclut également les paramètres suivants dans le bloc data :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | is3DSVer2 |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient de 3DS2. |
| Obligatoire | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | threeDSMethodUrl |
String [1..512] | URL du serveur ACS pour la collecte des données du navigateur. |
| Obligatoire | threeDSMethodUrlServer |
String [1..512] | URL du serveur 3DS pour collecter les données du navigateur qui seront incluses dans AReq (Authentication Request) du serveur 3DS vers le serveur ACS. |
| Facultatif | threeDSMethodDataPacked |
String [1..1024] | Données CReq (Challenge Response) en encodage Base-64 pour l'envoi au serveur ACS. |
| Facultatif | threeDSMethodURLServerDirect |
String [1..512] | Adresse URL 3dsmethod.do pour l'exécution de la méthode 3DS sur le serveur 3DS via la passerelle de paiement (en présence de l'autorisation correspondante au niveau du vendeur). |
| Facultatif | packedCReq |
String | Données challenge request empaquetées. Obligatoire, si une redirection vers ACS est nécessaire. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. |
| 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. |
Le bloc error contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
Le bloc orderStatus contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | 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 est une description de l'erreur en cas d'occurrence d'erreur. La valeur ErrorMessage peut varier, par conséquent il ne faut pas faire explicitement référence à ses valeurs dans le code. La langue de description est définie dans le paramètre language de la requête. |
| Facultatif | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque marchand. |
| 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. Voici la liste des valeurs disponibles :
|
| Facultatif | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Facultatif | actionCodeDescription |
String [1..512] | Description de actionCode, retournée par le système de traitement de la banque. |
| Facultatif | originalActionCode |
String [1..15] | Code de réponse reçu du processing. Pour activer la réception de ce champ, contactez le service de support technique. |
| 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 | date |
Integer | Date d'enregistrement de la commande comme nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Conditionnel | cardAuthInfo |
Object | Informations sur la carte de paiement de l'acheteur. Voir la description ci-dessous. |
| Facultatif | authDateTime |
Integer | Date et heure d'autorisation, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | terminalId |
String [1..10] | Identifiant du terminal dans le système qui traite le paiement. |
| Facultatif | authRefNum |
String [1..24] | Numéro d'autorisation du paiement, qui lui est attribué lors de l'enregistrement du paiement. |
| Facultatif | paymentNetRefNum |
String [1..512] | Original Network Reference Number - c'est un identifiant que le réseau de paiement (Mastercard, Visa, etc.) attribue lors de la première transaction (par exemple, un achat). Lors de l'exécution d'une opération inverse (remboursement, rétrofacturation, paiement répété), ce numéro :
getP2PStatus version 7 ou supérieure est utilisée.
|
| Conditionnel | paymentAmountInfo |
Object | Paramètre contenant des paramètres imbriqués avec des informations sur les montants de confirmation, de débit et de remboursement. Voir la description ci-dessous. |
| Conditionnel | bankInfo |
Object | Contient le paramètre imbriqué bankCountryName. Voir la description ci-dessous. |
| Conditionnel | payerData |
Object | Contient le paramètre imbriqué paymentAccountReference. Voir la description ci-dessous. |
Le bloc cardAuthInfo contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | expiration |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. |
| Obligatoire | cardholderName |
String [1..26] | Nom du porteur de carte en lettres latines. Caractères autorisés : lettres latines, point, espace. |
| Obligatoire | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Obligatoire | authCode |
Integer [6] | Paramètre obsolète (non utilisé). Sa valeur est toujours 2 indépendamment du statut de la commande et du code d'autorisation du système de traitement. |
| Obligatoire | pan |
String [1..19] | Numéro de carte de paiement |
| 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. |
Le bloc paymentAmountInfo contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | paymentState |
String | État de la commande, le paramètre peut prendre les valeurs suivantes :
|
| Obligatoire | approvedAmount |
Integer [0..12] | Montant en unités minimales de devise (par exemple, en centimes) qui a été bloqué sur le compte de l'acheteur. Utilisé uniquement dans les paiements en deux étapes. En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Obligatoire | depositedAmount |
Integer [1..12] | Montant du débit en unités minimales de devise (par exemple, en centimes). En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Obligatoire | refundedAmount |
Integer [1..12] | Montant du remboursement dans les unités minimales de la devise. |
Le bloc bankInfo contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | bankCountryName |
String [1..160] | Pays de la banque émettrice. |
Le bloc payerData contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | paymentAccountReference |
String [1..29] | Numéro unique du compte client, reliant tous ses moyens de paiement dans le cadre du SPI (cartes et jetons). |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/token/payment.do \
--header 'Content-Type: application/json' \
--data '{
"username":"test_user",
"password":"test_user_password",
"merchant":"test_merch",
"amount":"1000000",
"tii":"CI",
"clientId":"vtsTestClient",
"tokenType":"VTS",
"cvc":"123",
"cardHolderName":"DOS TESTOS",
"paymentData": {
"dpan":"4572433771970368",
"MM":"12",
"YYYY":"2028",
"tokenCryptogram":"Aetydhdjjdkfkndnd55gd="
},
"orderPayerData":{
"mobilePhone":"+492115684962"
},
"returnUrl":"https://mybestmerchantreturnurl.com",
"failUrl":"https://mybestmerchantfailurl.com",
"dynamicCallbackUrl":"https://test.com/callback",
"externalScaExemptionIndicator":"TRA",
"jsonParams":{
"email":"test@gmail.com"
},
"clientBrowserInfo": {
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"en-US",
"browserTimeZone":"Europe/London",
"browserTimeZoneOffset":-180,
"browserAcceptHeader":"*/*",
"browserIpAddress":"10.99.50.37"
},
}'Exemple de réponse
{
"success": true,
"data": {
"orderId": "2a2b97e0-7284-746a-998a-752f0a8246f8",
"is3DSVer2": false
},
"orderStatus": {
"errorCode": "0",
"orderNumber": "9049",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "Request is processed successfully",
"amount": 1000000,
"currency": "978",
"date": 1734729964138,
"ip": "10.99.50.37",
"cardAuthInfo": {
"expiration": "202412",
"cardholderName": "DOS TESTOS",
"approvalCode": "123456",
"authCode": 2,
"pan": "4111111111111111"
},
"authDateTime": 1734729964273,
"terminalId": "12346789",
"authRefNum": "111111111111",
"paymentNetRefNum": "54674915300274269950",
"paymentAmountInfo": {
"paymentState": "payment_deposited",
"approvedAmount": 1000000,
"depositedAmount": 1000000,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryName": "<UNKNOWN>"
},
"payerData": {}
}
}Statut de paiement
La façon la plus simple de connaître le statut de paiement est d'utiliser l'appel API spécial :
- Faire l'appel getOrderStatusExtended.do;
- Vérifier le champ
orderStatusdans la réponse : la commande est considérée comme payée, seulement si la valeurorderStatusest égale à1ou2.
Une autre façon de vérifier si le paiement a réussi ou non, c'est de regarder la notification de rappel.
Statut de commande
Pour obtenir le statut de commande, utilisez la méthode https://dev.bpcbt.com/payment/rest/getOrderStatusExtended.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
Des informations supplémentaires sur les raisons de refus sont disponibles ici.
Paramètres de requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| 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 marchand. |
| 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 | merchantLogin |
String [1..255] | Pour obtenir le statut de commande d'un marchand spécifique au lieu de l'utilisateur actuel, spécifiez le login du marchand (pour le compte API). 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. |
Paramètres de réponse
Il existe plusieurs ensembles de paramètres de réponse. L'ensemble de paramètres retourné dans la réponse dépend de la version getOrderStatusExtended spécifiée dans les paramètres du marchand dans la passerelle de paiement.
Description des versions
| Version | Paramètres ajoutés |
|---|---|
| 1 | orderBundle |
| 2 |
|
| 3 |
|
| 4 | Aucun changement |
| 5 | refunds |
| 6 | chargeback |
| 7 |
cardAuthInfo->secureAuthInfo->paResStatus, veResStatus, paResCheckStatus
|
| 8 |
cardAuthInfo->paymentSystem, product
|
| 9 | paymentWay |
| 10 | depositedDate |
| 11 | Aucun changement |
| 12 |
|
| 13 |
payerData->email,phone,postAddress
|
| 14 | transactionAttributes |
| 15 |
|
| 16 | feUtrnno |
| 17 |
cardAuthInfo->productCategory
|
| 18 | totalAmount |
| 19 | avsCode |
| 20 |
bindingInfo->externalCreated
|
| 21 |
refunds->externalRefundId
|
| 22 | Aucun changement |
| 23 | efectyOrderInfo |
| 24 | ofdOrderBundle |
| 25 | Aucun changement |
| 26 |
refunds->approvalCode
|
| 27 | authRefNum |
| 28 | pluginInfo |
| 29 | Aucun changement |
| 30 |
cardAuthInfo->secureAuthInfo->aResTransStatus, rReqTransStatus, threeDsProtocolVersion
|
| 31 | Aucun changement |
| 32 | Aucun changement |
| 33 | displayErrorMessage |
| 34 |
orderBundle->cartItems->items->depostedItemAmount,itemPrice
|
| 35 |
cardAuthInfo->corporateCard
|
| 36 | Aucun changement |
| 37 |
|
| 38 |
payerData ->paymentAccountReference
|
| 39 |
cardAuthInfo -> detokenizedPanRepresentation, detokenizedPanExpiryDate
|
| 40 | Aucun changement |
| 41 | PartialAuthorization |
| 42 |
cardAuthInfo->secureAuthInfo->threeDsType
|
| 43 | Aucun nouveau paramètre ajouté. Supprimé : cardAuthInfo->secureAuthInfo-> authTypeIndicator
|
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| Toutes | Optionnel | errorCode |
String [1..2] | Paramètre informatif en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Toutes | Optionnel | 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. |
| Toutes | Condition | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du commerçant, doit être unique pour chaque commerçant enregistré dans la passerelle de paiement. Si le numéro de commande est généré du côté de la passerelle de paiement, ce paramètre n'est pas obligatoire à transmettre. |
| Toutes | Optionnel | 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 :
|
| Toutes | Obligatoire | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Toutes | Obligatoire | actionCodeDescription |
String [1..512] | Description de actionCode, retournée par le système de traitement de la banque. |
| Toutes | Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Toutes | Optionnel | currency |
String [3] | Code de devise de paiement ISO 4217. Si non spécifié, la valeur par défaut est utilisée. |
| Toutes | Obligatoire | date |
Integer | Date d'enregistrement de la commande comme nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| 10+ | Optionnel | depositedDate |
Integer | Date de paiement de la commande comme nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Toutes | Optionnel | 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. |
| Toutes | Obligatoire | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| 27+ | Optionnel | authRefNum |
String [1..24] | Numéro d'autorisation du paiement, qui lui est attribué lors de l'enregistrement du paiement. |
| 12+, obligatoire depuis 27 | Optionnel | refundedDate |
Integer | Date et heure du remboursement, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps du 24 février 2025, 10:25:20 (UTC)). |
| 12+ | Optionnel | reversedDate |
Integer | Date et heure d'annulation du paiement, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple: 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| 09+ | Obligatoire | paymentWay |
String | Méthode d'exécution du paiement (paiement avec saisie des données de carte, paiement par liaison, etc.). Les valeurs supplémentaires possibles du paramètre sont présentées ci-dessous |
| 19+ | Optionnel | avsCode |
String | Code de réponse de vérification AVS (vérification de l'adresse et du code postal du porteur de carte). Valeurs possibles :
|
| 06+ | Optionnel | chargeback |
Boolean | Est-ce que les fonds ont été retournés de force à l'acheteur par la banque. Valeurs possibles :
|
| 02+ | Optionnel | authDateTime |
Integer | Date et heure d'autorisation, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| 02+ | Optionnel | terminalId |
String [1..10] | Identifiant du terminal dans le système qui traite le paiement. |
| 01+ | Optionnel | orderBundle |
Object | Objet contenant le panier de produits. La description des éléments imbriqués est donnée ci-dessous. |
| 03+ | Optionnel | paymentAmountInfo |
Object | Objet avec des informations sur les montants de confirmation, de débit, de remboursement. Voir la liste des paramètres imbriqués ci-dessous. |
| 05+ | Optionnel | refunds |
Object | Objet contenant des informations sur le remboursement. Présent uniquement en cas de remboursements dans la commande. La description des éléments imbriqués est fournie ci-dessous. |
| Toutes | Optionnel | cardAuthInfo |
Object | Bloc avec les données sur la carte du payeur. La description des éléments imbriqués est donnée ci-dessous. |
| 14+ | Optionnel | transactionAttributes |
Object | Ensemble d'attributs supplémentaires de la transaction. Voir la liste des paramètres imbriqués ci-dessous. |
| 15+ | Optionnel | prepaymentMdOrder |
String | Numéro de la commande de prépaiement précédente dans la passerelle de paiement. |
| 15+ | Optionnel | partpaymentMdOrders |
Array of String | Tableau des commandes suivantes pour le paiement partiel. |
| 16+ | Optionnel | feUtrnno |
Integer [1..18] | Numéro de transaction FE. |
| Toutes | Optionnel | bindingInfo |
Object | Objet contenant les informations sur la liaison par laquelle le paiement est effectué. Voir le tableau avec la description de bindingInfo. |
| 23+ | Optionnel | efectyOrderInfo |
Object | Bloc de paramètres liés au moyen de paiement EFECTY. La description des éléments imbriqués est donnée ci-dessous. |
| 28+ | Optionnel | pluginInfo |
Object | Présent dans la réponse, si le paiement a été effectué via un plugin de paiement. Voir les paramètres imbriqués ci-dessous. |
| 33+ | Optionnel | displayErrorMessage |
String | Message d'erreur affiché. |
| 37+ | Optionnel | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Marchand). La description des éléments imbriqués est donnée ci-dessous. |
| 37+ | Optionnel | usedPsdIndicatorValue |
String | Type d'exception SCA (Strong Customer Authentication). Contient la valeur transmise lors du paiement de la commande dans le paramètre externalScaExemptionIndicator.Valeurs autorisées :
|
| 41+ | Condition | partialAuthorization |
String [1..255] | Indicateur du statut d'autorisation partielle de la commande. Obligatoire, si dans les détails de la commande le paramètre partialAuthorization est présent.Valeurs autorisées :
|
Valeurs du paramètre paymentWay :
-
CARD- Paiement avec saisie des données de carte -
CARD_BINDING- Traitement du paiement par liaison -
CARD_MOTO- Paiement via centre d'appels -
FILE_BINDING- Paiement via fichier -
P2P- Transfert d'argent de carte à carte -
P2P_BINDING- Transfert de carte à carte par liaison -
APPLE_PAY- Paiement Apple Pay -
APPLE_PAY_BINDING- Paiement par liaison Apple Pay -
GOOGLE_PAY_CARD- Paiement par carte non tokenisée Google Pay -
GOOGLE_PAY_CARD_BINDING- Paiement par liaison à l'aide d'une carte non tokenisée Google Pay -
GOOGLE_PAY_TOKENIZED- Paiement par carte tokenisée Google Pay -
GOOGLE_PAY_TOKENIZED_BINDING- Paiement par liaison à l'aide d'une carte tokenisée Google Pay -
SAMSUNG_PAY- Paiement Samsung Pay -
SAMSUNG_PAY_BINDING- Paiement par liaison Samsung Pay -
TOKEN_PAY- Paiement par token directement -
TOKEN_PAY_BINDING- Paiement via liaison tokenisée
Valeurs possibles de tii (Pour plus de détails sur les types de liaisons supportés par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Sauvegarde des données de carte après la transaction | Remarque |
|---|---|---|---|---|---|---|
| Vide | Ordinaire | Acheteur | Saisie par l'acheteur | Non | Transaction de commerce électronique sans sauvegarde de liaison. | |
| CI | Initiateur - Ordinaire (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| F | Paiement non planifié (CIT) | Ultérieure | Acheteur | Le client choisit la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| U | Paiement non planifié (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| RI | Initiateur - Récurrents (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| R | Paiement récurrent (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération récurrente utilisant une liaison sauvegardée. |
| II | Initiateur - Échelonnement (CIT) | Initiatrice | Acheteur | Saisie par l'acheteur | Oui | Transaction de commerce électronique avec sauvegarde de liaison. |
| I | Paiement échelonné (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Opération d'échelonnement utilisant une liaison sauvegardée. |
Le bloc refunds contient les paramètres suivants.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 05+ | Optionnel | date |
String | Date de retour de la commande |
| 21+ | Optionnel | externalRefundId |
String [1..32] | Identifiant du remboursement. Lors de la tentative de remboursement, externalRefundId est vérifié : s'il existe, une réponse réussie avec les données du remboursement est retournée, sinon — le remboursement est effectué. |
| 26+ pour toutes les méthodes de paiement | Optionnel | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| 05+ | Optionnel | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| 05+ | Optionnel | referenceNumber |
String [12] | Numéro d'identification unique qui est attribué à l'opération lors de sa finalisation. |
| 05+ | Optionnel | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
Le bloc attributes contient des informations sur le numéro de commande dans la passerelle de paiement. Le paramètre name prend toujours la valeur mdOrder, et le paramètre value - le numéro de commande dans le système de paiement.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| Toutes | Optionnel | name |
String [1..255] | Nom du paramètre supplémentaire. |
| Toutes | Optionnel | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
Le bloc transactionAttributes contient un ensemble d'attributs supplémentaires de transaction. Utilisé pour la version 14 et supérieure. La liste des paramètres inclus est présentée ci-dessous.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 14+ | Optionnel | name |
String [1..255] | Nom du paramètre supplémentaire. |
| 14+ | Optionnel | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
le bloc merchantOrderParams est transmis dans la réponse si la commande contient des paramètres supplémentaires du marchand. Chaque paramètre supplémentaire est transmis dans un élément merchantOrderParams séparé. |
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| Toutes | Optionnel | name |
String [1..255] | Nom du paramètre supplémentaire. |
| Toutes | Optionnel | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
Dans l'élément cardAuthInfo se trouve une structure composée d'une liste d'éléments secureAuthInfo et des paramètres suivants.
| Version | Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 01+ | Facultatif | maskedPan |
String [1..19] | Numéro de carte masqué utilisé pour le paiement. Contient les 6 premiers et les 4 derniers chiffres réels du numéro de carte au format XXXXXX**XXXX. |
| 01+ | Facultatif | expiration |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. |
| 01+ | Facultatif | cardholderName |
String [1..26] | Nom du porteur de carte en lettres latines. Caractères autorisés : lettres latines, point, espace. |
| 01+ | Facultatif | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| 08+ | Obligatoire | paymentSystem |
String | Nom du système de paiement. Les valeurs suivantes sont possibles :
|
| 08+ | Obligatoire | product |
String [1..255] | Informations supplémentaires sur les cartes d'entreprise. Ces informations sont remplies par le service de support technique. Si de telles informations sont absentes, une valeur vide est retournée. |
| 17+ | Obligatoire | productCategory |
String | Informations supplémentaires sur la catégorie des cartes d'entreprise. Ces informations sont remplies par le service de support technique. Si de telles informations sont absentes, une valeur vide est retournée. Valeurs possibles : DEBIT, CREDIT, PREPAID, NON_MASTERCARD, CHARGE, DIFFERED_DEBIT. |
| 35+ | Facultatif | corporateCard |
String [1..5] | Indique si cette carte est une carte d'entreprise. Valeurs possibles : false - n'est pas une carte d'entreprise, true - est une carte d'entreprise. Peut retourner une valeur vide, signifie que la valeur n'a pas été trouvée. |
| 39+ | Facultatif | detokenizedPanRepresentation |
String [1..19] | Numéro de carte détokenisé (4 derniers chiffres ou sous forme masquée). |
| 39+ | Facultatif | detokenizedPanExpiryDate |
String | Date d'expiration de la carte détokénisée au format suivant : YYYYMM. |
L'élément secureAuthInfo se compose des éléments suivants (les paramètres cavv et xid sont inclus dans l'élément threeDSInfo).
| Version | Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 01+ | Facultatif | eci |
Integer [1..4] | Indicateur de commerce électronique. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. Ci-dessous se trouve le décodage des codes ECI.
|
| 01 - 42 | Facultatif | authTypeIndicator |
String | Type d'authentification 3DS (disponible jusqu'à la version 42). Ce paramètre est obligatoire pour le paiement via votre serveur 3DS avec 3DS 2. Pour les paiements SSL ce paramètre est facultatif et déterminé en fonction de la valeur ECI. Valeurs admissibles :
|
| 42+ | Facultatif | threeDsType |
String | Type d'authentification 3DS. Ce paramètre est obligatoire pour le paiement via votre serveur 3DS avec 3DS 2. Pour les paiements SSL, ce paramètre est facultatif et est déterminé en fonction de la valeur ECI. Valeurs autorisées :
|
| 01+ | Facultatif | cavv |
String [0..200] | Valeur de vérification d'authentification du titulaire de la carte. Spécifiée uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| 01+ | Facultatif | xid |
String [1..80] | Identifiant commercial électronique de la transaction. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. |
| 30+ | Facultatif | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| 30+ | Facultatif | rreqTransStatus |
String [1] | Statut de la transaction de la demande de transmission des résultats d'authentification utilisateur depuis ACS (RReq). Transmis lors de l'utilisation de 3DS2. |
| 30+ | Facultatif | aresTransStatus |
String | État de la transaction de la réponse ACS à la demande d'authentification (ARes). Transmis lors de l'utilisation de 3DS2. |
L'élément bindingInfo contient les paramètres suivants.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| Toutes | 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. |
| Toutes | 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 :
|
| 02+ | Facultatif | authDateTime |
Integer | Date et heure d'autorisation, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| 02+ | Facultatif | authRefNum |
String [1..24] | Numéro d'autorisation du paiement, qui lui est attribué lors de l'enregistrement du paiement. |
| 02+ | Facultatif | terminalId |
String [1..10] | Identifiant du terminal dans le système qui traite le paiement. |
| 20+ | Facultatif | externalCreated |
Boolean | Attribut indiquant si la liaison a été créée dans le service externe. |
L'élément paymentAmountInfo contient les paramètres suivants.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 03+ | Facultatif | approvedAmount |
Integer [0..12] | Montant en unités minimales de devise (par exemple, en centimes) qui a été bloqué sur le compte de l'acheteur. Utilisé uniquement dans les paiements en deux étapes. En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| 03+ | Facultatif | depositedAmount |
Integer [1..12] | Montant du débit en unités minimales de devise (par exemple, en centimes). En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| 03+ | Facultatif | refundedAmount |
Integer [1..12] | Montant du remboursement dans les unités minimales de la devise. |
| 03+ | Facultatif | paymentState |
String | État de la commande, le paramètre peut prendre les valeurs suivantes :
|
| 18+ | Facultatif | totalAmount |
Integer [1..20] | Montant de la commande plus commission, si elle existe. |
L'élément bankInfo contient les paramètres suivants.
| Version | Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 03+ | Facultatif | bankName |
String [1..50] | Nom de la banque émettrice. |
| 03+ | Facultatif | bankCountryCode |
String [1..4] | Code du pays de la banque émettrice. |
| 03+ | Facultatif | bankCountryName |
String [1..160] | Pays de la banque émettrice. |
L'élément payerData contient les paramètres suivants.
| Version | Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 13+ | Facultatif | email |
String [1..40] | Adresse électronique du payeur. |
| 13+ | Facultatif | phone |
String [7..15] | Numéro de téléphone du propriétaire de la carte. Il est nécessaire de toujours indiquer le code 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 propriétaire de la carte. |
| 13+ | Facultatif | postAddress |
String [1..255] | Adresse de livraison. |
| 38+ | 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). |
Le bloc efectyOrderInfo contient les paramètres suivants.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 23+ | Optionnel | referenceNumber |
Integer | Numéro de référence Efecty de la commande, généré côté Efecty |
| 23+ | Optionnel | referenceDate |
Integer | Date/heure de création de la référence |
| 23+ | Optionnel | referenceStatus |
String | État de la commande Efecty |
| 23+ | Optionnel | referenceTerm |
Integer | Durée de vie de la commande Efecty (en heures) |
| 23+ | Optionnel | networkID |
Integer | Identifiant du réseau d'acceptation de paiement en espèces (pour Efecty valeur constante - 1) |
| 23+ | Optionnel | networkName |
String | Nom du réseau d'acceptation de paiement en espèces (pour Efecty valeur constante - efecty) |
L'élément pluginInfo (objet JSON) est présent dans la réponse si le paiement a été effectué via un plugin de paiement. Contient les paramètres suivants.
| Version | Obligatoire | Nom | Type | Description |
|---|---|---|---|---|
| 28+ | Optionnel | name |
String [1..32] | Nom unique du plugin de paiement. |
| 28+ | Optionnel | params |
Object | Les paramètres pour le mode de paiement spécifique doivent être transmis de la manière suivante {"param":"value","param2":"value2"}. |
Description des paramètres dans l'objet orderBundle :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | orderCreationDate |
String [19] | Date de création de la commande au format YYYY-MM-DDTHH:MM:SS. |
| Facultatif | customerDetails |
Object | Bloc contenant les attributs du client. La description des attributs de la balise est donnée ci-dessous. |
| Obligatoire | cartItems |
Object | Objet contenant les attributs des produits dans le panier. La description des éléments imbriqués est fournie ci-dessous. |
Description des paramètres dans l'objet loyalties :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | bonusAmountForCredit |
String [0..18] | Montant total des bonus pour tous les produits de ce positionId pour le crédit sur le compte bonus du client dans les unités minimales de devise. |
| Facultatif | bonusAmountForDebit |
String [0..18] | Montant total des bonus pour tous les produits de ce positionId pour débit du compte bonus du client en unités monétaires minimales. |
| Obligatoire | bonusAmountRefunded |
String [0..18] | Montant total des bonus remboursés pour ce positionId en unités monétaires minimales. |
Description des paramètres dans l'objet customerDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | contact |
String [0..40] | Méthode de contact préférée par le client. |
| Facultatif | fullName |
String [1..100] | Nom complet du payeur. |
| Facultatif | passport |
String [1..100] | Série et numéro du passeport du payeur au format suivant : 2222888888
|
| Facultatif | deliveryInfo |
Object | Objet contenant les attributs de l'adresse de livraison. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet deliveryInfo :
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | deliveryType |
String [1..20] | Mode de livraison. |
| Obligatoire | country |
String [2] | Code de pays de livraison à deux lettres. |
| Obligatoire | city |
String [0..40] | Ville de destination. |
| Obligatoire | postAddress |
String [1..255] | Adresse de livraison. |
Description des paramètres dans l'objet cartItems :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | items |
Object | Élément du tableau avec les attributs de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet items :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | positionId |
Integer [1..12] | Identifiant unique de la position de marchandise dans le panier. |
| Obligatoire | name |
String [1..255] | Désignation ou description de la position tarifaire sous forme libre. |
| Facultatif | itemDetails |
Object | Objet avec les paramètres de description de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Obligatoire | quantity |
Object | Élément décrivant la quantité totale des positions de marchandises d'un même positionId et ses unités de mesure. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | itemAmount |
Integer [1..12] | Montant du coût de toutes les positions de marchandises d'un positionId dans les unités minimales de la devise. itemAmount est obligatoire à transmettre, seulement si le paramètre itemPrice n'a pas été transmis. Dans le cas contraire, la transmission d'itemAmount n'est pas requise. Si dans la requête les deux paramètres sont transmis : itemPrice et itemAmount, alors itemAmount doit être égal à itemPrice * quantity, dans le cas contraire la requête se terminera avec une erreur. |
| Facultatif | itemPrice |
Integer [1..18] | Montant du coût de la position de marchandise d'un positionId en argent dans les unités minimales de devise. |
| Facultatif | depositedItemAmount |
String [1..18] | Montant de débit pour un positionId en unités minimales de devise (par exemple, en centimes). |
| Facultatif | itemCurrency |
Integer [3] | Code de devise ISO 4217. Si non spécifié, considéré comme égal à la devise de la commande. |
| Obligatoire | itemCode |
String [1..100] | Numéro (identifiant) de la position de marchandise dans le système du magasin. |
Description des paramètres dans l'objet quantity :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
Number [1..18] | Quantité de positions de marchandises de ce positionId. Pour indiquer les nombres fractionnaires, utilisez le point décimal. Maximum 3 chiffres après le point sont autorisés. |
| Obligatoire | measure |
String [1..20] | Unité de mesure de la quantité par position. |
Description des paramètres dans l'objet itemDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | itemDetailsParams |
Object | Paramètre décrivant les informations supplémentaires sur la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/getOrderStatusExtended.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
--data language=enExemple de réponse
{
"errorCode": "0",
"errorMessage": "Success",
"orderNumber": "7005",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 2000,
"currency": "978",
"date": 1617972915659,
"orderDescription": "",
"merchantOrderParams": [],
"transactionAttributes": [],
"attributes": [
{
"name": "mdOrder",
"value": "01491d0b-c848-7dd6-a20d-e96900a7d8c0"
}
],
"cardAuthInfo": {
"maskedPan": "411111**1111",
"expiration": "203412",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "12345678",
"pan": "411111**1111"
},
"bindingInfo": {
"clientId": "259753456",
"bindingId": "01491394-63a6-7d45-a88f-7bce00a7d8c0"
},
"authDateTime": 1617973059029,
"terminalId": "123456",
"authRefNum": "714105591198",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 2000,
"depositedAmount": 2000,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryCode": "UNKNOWN",
"bankCountryName": "Unknown"
}
}Gestion de commande
Finalisation de la commande
Pour finaliser une commande pré-autorisée, utilisez la requête https://dev.bpcbt.com/payment/rest/deposit.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
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Condition | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. Il est nécessaire de transmettre |
| Condition | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. Il est nécessaire de transmettre |
| Condition | merchantLogin |
String [1..255] | Pour effectuer certaines actions avec le paiement de la commande au nom d'un autre marchand, indiquez 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. Il est nécessaire de transmettre |
| Obligatoire | amount |
String [0..12] | Montant de finalisation dans les unités monétaires minimales (par exemple, en centimes). Le montant de finalisation doit correspondre au montant total de tous les articles pour lesquels la finalisation est effectuée. Si amount=0 est spécifié dans la requête, une finalisation sera générée pour le montant total de la commande. |
| Facultatif | depositItems |
Object | Objet contenant les attributs des produits dans le panier. La description des attributs inclus est fournie ci-dessous. |
| 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 | 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 | jsonParams |
Object | Ensemble d'attributs supplémentaires de forme arbitraire, structure:jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}Peuvent être transmis au Centre de Traitement, pour traitement ultérieur (configuration supplémentaire requise - contactez le support). Certains attributs prédéfinis jsonParams:
|
Description des paramètres dans l'objet deposititems :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | items |
Object | Élément du tableau avec les attributs de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet items :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | positionId |
Integer [1..12] | Identifiant unique de la position de marchandise dans le panier. |
| Obligatoire | name |
String [1..255] | Désignation ou description de la position tarifaire sous forme libre. |
| Facultatif | itemDetails |
Object | Objet avec les paramètres de description de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Obligatoire | quantity |
Object | Élément décrivant la quantité totale des positions de marchandises d'un même positionId et ses unités de mesure. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | itemAmount |
Integer [1..12] | Montant du coût de toutes les positions de marchandises d'un positionId dans les unités minimales de la devise. itemAmount est obligatoire à transmettre, seulement si le paramètre itemPrice n'a pas été transmis. Dans le cas contraire, la transmission d'itemAmount n'est pas requise. Si dans la requête les deux paramètres sont transmis : itemPrice et itemAmount, alors itemAmount doit être égal à itemPrice * quantity, dans le cas contraire la requête se terminera avec une erreur. |
| Facultatif | itemPrice |
Integer [1..18] | Montant du coût de la position de marchandise d'un positionId en argent dans les unités minimales de devise. |
| Facultatif | depositedItemAmount |
String [1..18] | Montant de débit pour un positionId en unités minimales de devise (par exemple, en centimes). |
| Facultatif | itemCurrency |
Integer [3] | Code de devise ISO 4217. Si non spécifié, considéré comme égal à la devise de la commande. |
| Obligatoire | itemCode |
String [1..100] | Numéro (identifiant) de la position de marchandise dans le système du magasin. |
Description des paramètres dans l'objet itemDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | itemDetailsParams |
Object | Paramètre décrivant les informations supplémentaires sur la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet quantity :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
Number [1..18] | Quantité de positions de marchandises de ce positionId. Pour indiquer les nombres fractionnaires, utilisez le point décimal. Maximum 3 chiffres après le point sont autorisés. |
| Obligatoire | measure |
String [1..20] | Unité de mesure de la quantité par position. |
Paramètres de la réponse
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/deposit.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data currency=978\
--data amount=2000 \
--data orderId=01492437-d2fb-77fa-8db7-9e2900a7d8c0 \
--data language=enExemple de réponse
{
"errorCode": 0,
"errorMessage":"Success"
}Annulation de paiement
Pour annuler un paiement, utilisez la requête https://dev.bpcbt.com/payment/rest/reverse.do.
L'annulation n'est possible que pendant une certaine période de temps après le paiement. Contactez le Support pour connaître la période exacte, car elle varie.
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
Un paiement ne peut être annulé qu'une seule fois. S'il se termine par une erreur, les opérations d'annulation de paiement ultérieures ne fonctionneront pas.
La disponibilité de cette fonction est possible après accord avec la banque. L'annulation ne peut être effectuée que par des utilisateurs auxquels les autorisations système correspondantes ont été accordées.
Paramètres de requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Condition | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. Il est nécessaire de transmettre |
| Condition | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. Il est nécessaire de transmettre |
| Condition | merchantLogin |
String [1..255] | Pour annuler une commande au nom d'un autre marchand, spécifiez son identifiant (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 subsidiaire. Il est nécessaire de transmettre |
| 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 | jsonParams |
String | Les champs pour stocker des données supplémentaires doivent être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | amount |
String [0..12] | Montant d'annulation en unités minimales de devise (par exemple, en centimes). Le montant d'annulation doit être inférieur ou égal au montant autorisé de la commande (pour les commandes à deux étapes - montant total pré-autorisé de la commande). |
| 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. |
Paramètres de réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/reverse.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data currency=978\
--data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
--data language=enExemple de réponse
{
"errorCode": 0,
"errorMessage":"Success"
}Remboursement
Utilisez https://dev.bpcbt.com/payment/rest/refund.do` pour envoyer les demandes de remboursement.
Lors de l'exécution de la demande, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/x-www-form-urlencoded
Il est impossible d'effectuer des remboursements pour les commandes qui initient des paiements réguliers, car dans ce cas il n'y a pas de prélèvement de fonds.
Suite à cette demande, les fonds de la commande spécifiée seront remboursés au payeur. La demande se terminera par une erreur si les fonds de cette commande n'ont pas été prélevés. Le système permet de rembourser les fonds plus d'une fois, mais au total pas plus que le montant initial du prélèvement.
Paramètres de la demande
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Condition | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. Il est nécessaire de transmettre |
| Condition | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. Il est nécessaire de transmettre |
| Condition | merchantLogin |
String [1..255] | Pour effectuer certaines actions avec le paiement de la commande au nom d'un autre marchand, indiquez 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. Il est nécessaire de transmettre |
| Obligatoire | amount |
String [0..12] | Montant du remboursement en unités minimales de la devise (par exemple, en centimes). Le montant du remboursement doit être inférieur ou égal au montant de la commande (pour les commandes en deux étapes - le montant total de finalisation de la commande). Si dans la demande on indique amount=0, alors tout le montant de la commande sera remboursé. |
| 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 | jsonParams |
String | Les champs pour stocker des données supplémentaires doivent être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
| Facultatif | expectedDepositedAmount |
Integer [1..12] | Le paramètre sert à déterminer que la demande est répétée. Si le paramètre est transmis, sa valeur est comparée avec la valeur actuelle de depositedAmount dans la commande. L'opération ne sera exécutée que si les valeurs correspondent. Si deux retours arrivent avec le même expectedDepositedAmount, un seul retour sera exécuté. Ce retour modifiera la valeur de depositedAmount, puis le second retour sera rejeté. |
| Facultatif | externalRefundId |
String [1..32] | Identifiant du remboursement. Lors de la tentative de remboursement, externalRefundId est vérifié : s'il existe, une réponse réussie avec les données du remboursement est retournée, sinon — le remboursement est effectué. |
| 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 | refundItems |
Object | Objet pour transmettre les informations sur les marchandises retournées - numéro de position de la marchandise dans la demande, nom, détails, unité de mesure, quantité, devise, code de marchandise, profit de l'agent. |
Le paramètre refundItems inclut :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | items |
Object | Élément du tableau avec les attributs de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet items :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | positionId |
Integer [1..12] | Identifiant unique de la position de marchandise dans le panier. |
| Obligatoire | name |
String [1..255] | Désignation ou description de la position tarifaire sous forme libre. |
| Facultatif | itemDetails |
Object | Objet avec les paramètres de description de la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Obligatoire | quantity |
Object | Élément décrivant la quantité totale des positions de marchandises d'un même positionId et ses unités de mesure. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | itemAmount |
Integer [1..12] | Montant du coût de toutes les positions de marchandises d'un positionId dans les unités minimales de la devise. itemAmount est obligatoire à transmettre, seulement si le paramètre itemPrice n'a pas été transmis. Dans le cas contraire, la transmission d'itemAmount n'est pas requise. Si dans la requête les deux paramètres sont transmis : itemPrice et itemAmount, alors itemAmount doit être égal à itemPrice * quantity, dans le cas contraire la requête se terminera avec une erreur. |
| Facultatif | itemPrice |
Integer [1..18] | Montant du coût de la position de marchandise d'un positionId en argent dans les unités minimales de devise. |
| Facultatif | depositedItemAmount |
String [1..18] | Montant de débit pour un positionId en unités minimales de devise (par exemple, en centimes). |
| Facultatif | itemCurrency |
Integer [3] | Code de devise ISO 4217. Si non spécifié, considéré comme égal à la devise de la commande. |
| Obligatoire | itemCode |
String [1..100] | Numéro (identifiant) de la position de marchandise dans le système du magasin. |
Description des paramètres dans l'objet itemAttributes :
Le paramètre itemAttributes doit contenir un tableau attributes, et déjà dans ce tableau sont situés les attributs de la position marchandise (voir exemple et tableau ci-dessous).
"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | paymentMethod |
Integer [1..2] | Type de paiement, valeurs disponibles :
|
| Obligatoire | |||
| Condition | nomenclature |
String [1..95] | Code de la nomenclature de marchandises en représentation hexadécimale avec espaces. Longueur maximale – 32 octets. Obligatoire, si markQuantity est transmis. |
| Facultatif | markQuantity |
Object | Quantité fractionnelle du produit marqué. |
| Facultatif | userData |
String [1..64] | Valeur de la réquisition de l'utilisateur. Ne peut être transmise qu'après accord avec le Service fiscal fédéral. |
| Facultatif | agent_info |
Object | Objet avec les données sur l'agent de paiement pour la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | supplier_info |
Object | Objet avec les données sur le fournisseur pour la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet agent_info :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | type |
Integer | Type d'agent, valeurs disponibles :
|
| Facultatif | paying |
Object | Objet avec les données sur l'agent de paiement. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | paymentsOperator |
Object | Objet avec des informations sur l'opérateur de réception des paiements. La description des éléments imbriqués est donnée ci-dessous. |
| Facultatif | MTOperator |
Object | Objet avec les données sur l'Opérateur de traduction. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet paying :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | operation |
String [1..24] | Nom de la transaction de l'agent de paiement. |
| Facultatif | phones |
Array of strings | Tableau des numéros de téléphone de l'agent de paiement au format +N. |
Description des paramètres dans l'objet paymentsOperator :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | phones |
Array of strings | Tableau des numéros de téléphone de l'agent de paiement au format +N. |
Description des paramètres dans l'objet MTOperator :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | phones |
Array of strings | Tableau des numéros de téléphone de l'opérateur de traduction au format +N. |
| Facultatif | name |
String [1..256] | Nom de l'opérateur de transfert. |
| Facultatif | address |
String [1..256] | Adresse de l'opérateur de transfert. |
| Facultatif | inn |
String [10..12] | INN de l'opérateur de transfert. |
Description des paramètres dans l'objet supplier_info :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Optionnel | phones |
Array of strings | Tableau des numéros de téléphone du fournisseur au format +N. |
| Optionnel | name |
String [1..256] | Nom du fournisseur. |
| Optionnel | inn |
Integer [10..12] | INN du fournisseur |
Description des paramètres de l'objet markQuantity.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | numerator |
Integer [1..12] | Numérateur de la partie fractionnaire de l'objet de paiement. |
| Obligatoire | denominator |
Integer [1..12] | Dénominateur de la partie fractionnaire de l'objet de paiement. |
Description des paramètres dans l'objet quantity :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
Number [1..18] | Quantité de positions de marchandises de ce positionId. Pour indiquer les nombres fractionnaires, utilisez le point décimal. Maximum 3 chiffres après le point sont autorisés. |
| Obligatoire | measure |
String [1..20] | Unité de mesure de la quantité par position. |
Valeurs possibles du paramètre measure :
| Valeur | Description |
|---|---|
| 0 | S'applique aux positions qui peuvent être réalisées individuellement ou par unités séparées, ainsi que si l'objet de paiement est un sujet soumis au marquage d'identification obligatoire. |
| 10 | Gramme |
| 11 | Kilogramme |
| 12 | Tonne |
| 20 | Centimètre |
| 21 | Décimètre |
| 22 | Mètre |
| 30 | Centimètre carré |
| 31 | Décimètre carré |
| 32 | Mètre carré |
| 40 | Millilitre |
| 41 | Litre |
| 42 | Mètre cube |
| 50 | Kilowatt heure |
| 51 | Gigacalorie |
| 70 | Jour |
| 71 | Heure |
| 72 | Minute |
| 73 | Seconde |
| 80 | Kilooctet |
| 81 | Mégaoctet |
| 82 | Gigaoctet |
| 83 | Téraoctet |
| 255 | S'applique aux autres unités de mesure |
Description des paramètres dans l'objet itemDetails :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | itemDetailsParams |
Object | Paramètre décrivant les informations supplémentaires sur la position de marchandise. La description des éléments imbriqués est donnée ci-dessous. |
Description des paramètres dans l'objet itemDetailsParams :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | value |
String [1..2000] | Informations supplémentaires sur la position de marchandise. |
| Obligatoire | name |
String [1..255] | Dénomination du paramètre de description de la détaillisation de la position de marchandise |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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. |
Exemples
Exemple de demande
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/refund.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data currency=978\
--data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
--data amount=2000 \
--data language=enExemple de réponse
{
"errorCode": 0,
"errorMessage":"Success"
}Remboursement instantané
Utilisez la requête https://dev.bpcbt.com/payment/rest/instantRefund.do pour rembourser les fonds d'une commande. Avec cette requête, les fonds de la commande seront remboursés au payeur.
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..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | amount |
Integer [0..12] | Montant du remboursement dans les unités minimales de devise (par exemple, en centimes). |
| 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 | 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. |
| Condition | orderNumber |
String [1..36] | Le numéro de commande (ID) dans le système du vendeur doit être unique pour chaque vendeur enregistré dans la Passerelle de paiement. Si le numéro de commande est généré du côté du marchand, ce paramètre est facultatif. |
| 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 | seToken |
String [1..8192] | Données de carte chiffrées saisies par le client du côté du marchand. Doivent être transmises si utilisées à la place des données de carte : pan, cvc, expiry et cardHolderName. Combinaisons autorisées de seToken :
MdOrder ne doit pas être présent dans seToken. Si bindingId est spécifié, alors au lieu de mdOrder une valeur vide //bindingId est indiquée.Pour plus de détails sur la génération de seToken voir ici. |
| Condition | pan |
String [1..19] | Numéro de carte masqué. Obligatoire si ni seToken ni bindingId ne sont transmis. |
| Condition | cvc |
String [3] | Code CVC/CVV2 au verso de la carte. Est obligatoire si le marchand n'a pas l'autorisation de paiement sans CVC. Obligatoire si ni seToken, ni bindingId ne sont transmis. Seuls les chiffres sont autorisés. |
| Condition | expiry |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. Obligatoire si ni seToken, ni bindingId ne sont transmis. |
| Condition | cardHolderName |
String [1..26] | Nom du porteur de la carte en lettres latines. Obligatoire si ni seToken ni bindingId ne sont transmis. |
| Facultatif | jsonParams |
String | Les champs pour stocker des données supplémentaires doivent être transmis de la manière suivante : {"param":"value","param2":"value2"}. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Facultatif | orderStatus |
Object | Bloc avec les informations sur le statut de la commande. Voir paramètres imbriqués. |
Ci-dessous sont présentés les paramètres du bloc orderStatus.
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Facultatif | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Facultatif | rrn |
Integer [1..12] | Reference Retrieval Number - identifiant de transaction attribué par la banque acquéreuse. |
| Facultatif | 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 est une description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, il ne faut donc 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/instantRefund.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=2000 \
--data userName=test_user \
--data password=test_user_password \
--data orderNumber=1218637308 \
--data pan=4000001111111118 \
--data cvc=123 \
--data expiry=203012 \
--data cardHolderName=TEST CARDHOLDER \
--data language=enExemple de réponse - Remboursement instantané réussi et obtention réussie du statut de la commande
{
"errorCode": "0",
"errorMessage": "Success",
"orderId": "04899a8a-3bfd-7ceb-ac10-9e6909017350",
"orderStatus": {
"ErrorCode": "7",
"ErrorMessage": "System error",
}
}Exemple de réponse - Remboursement instantané réussi et obtention NON réussie du statut de la commande
{
"errorCode": "0",
"errorMessage": "Success",
"orderId": "04899a8a-3bfd-7ceb-ac10-9e6909017350",
"orderStatus": {
"ErrorCode": "7",
"ErrorMessage": "System error",
}
}Exemple de réponse - Remboursement instantané non réussi (par exemple, erreur de validation)
{
"errorCode": "5",
"errorMessage": "Access denied"
}Annulation de commande
Pour annuler une commande pas encore payée, utilisez la requête https://dev.bpcbt.com/payment/rest/decline.do. Il est possible de rejeter seulement une commande qui n'a pas été finalisée.
Après l'exécution réussie de cette requête, la commande passe au statut DECLINED.
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 requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Facultatif | merchantLogin |
String [1..255] | Pour enregistrer une commande au nom d'un autre marchand, indiquez 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 | 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. |
| Obligatoire | 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 d'information 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/decline.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=8cf0409e-857e-7f95-8ab1-b6810009d884 \
--data orderNumber=12345678 \
--data merchantLogin=merch_test418 \
--data language=enExemple de réponse
{
"errorCode": 0,
"errorMessage":"Success"
}Liaisons
Les requêtes API présentées ci-dessous permettent de gérer les transactions par liaisons. La transaction par liaison est utilisée lorsque le porteur de carte autorise le vendeur à stocker les données de paiement pour les paiements ultérieurs. Apprenez-en plus sur les liaisons ici.
Paiement par liaison
Pour le paiement de commande par liaison est utilisée la requête https://dev.bpcbt.com/payment/rest/paymentOrderBinding.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 requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | mdOrder |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Obligatoire | 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 | 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 | cvc |
String [3] | La transmission du paramètre est déterminée par le type de paiement :
|
| Facultatif | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| Obligatoire | tii |
String | Identifiant de l'initiateur de transaction. Paramètre indiquant quel type d'opération sera exécuté par l'initiateur (Client ou Merchant). Valeurs possibles : F, U. Voir la description des valeurs. |
| Condition | email |
String [1..40] | Adresse électronique pour l'affichage sur la page de paiement. Si les notifications client sont configurées pour le marchand, l'adresse électronique doit être spécifiée. Exemple : client_mail@email.com. Pour les paiements VISA avec autorisation 3DS, il est nécessaire de spécifier soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. |
| 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 | threeDSProtocolVersion |
String | Version du protocole 3DS. Valeurs possibles : "2.1.0", "2.2.0" pour 3DS2. Si threeDSProtocolVersion n'est pas transmis dans la requête, alors pour l'autorisation 3D Secure, la valeur par défaut sera utilisée (2.1.0 - pour 3DS 2). |
| Facultatif | externalScaExemptionIndicator |
String | Type d'exemption SCA (Strong Customer Authentication). 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 effectuée, soit la banque émettrice recevra des informations sur l'exemption SCA et prendra une décision de mener l'opération avec authentification 3DS ou sans elle (pour obtenir des informations détaillées, contactez notre service de support). Valeurs autorisées :
Pour transmettre ce paramètre, vous devez avoir des droits suffisants dans la passerelle de paiement. |
| Condition | seToken |
String [1..8192] | Données de carte chiffrées. Obligatoire si utilisé à la place des données de carte. Paramètres obligatoires pour la chaîne seToken : timestamp, UUID, bindingId, MDORDER. Plus de détails sur la génération seToken voir ici.Il est nécessaire de transmettre l'un des ensembles de paramètres suivants : |
| Optional | clientBrowserInfo |
Object | Bloc de données sur le navigateur du client, qui est envoyé à ACS pendant l'authentification 3DS. Ce bloc peut être transmis uniquement si un paramètre spécial est activé (contactez l'équipe de support). Voir paramètres imbriqués. |
| Facultatif | acsInIFrame |
Boolean | Drapeau indiquant que pour l'URL finale une version iFrame sera retournée. Valeurs possibles true ou false. Pour activer cette fonctionnalité, contactez le service de support. |
Valeurs possibles tii (Pour en savoir plus sur les types de liaisons pris en charge par la passerelle de paiement, lisez ici).
Valeur tii
|
Description | Type de transaction | Initiateur de transaction | Données de carte pour la transaction | Sauvegarde des données de carte après la transaction | Remarque |
|---|---|---|---|---|---|---|
| F | Paiement hors plan (CIT) | Ultérieure | Acheteur | Le client choisit la carte au lieu de la saisie manuelle | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
| U | Paiement hors plan (MIT) | Ultérieure | Vendeur | Pas de saisie manuelle, le vendeur transmet les données | Non | Transaction de commerce électronique utilisant une liaison ordinaire précédemment sauvegardée. |
Ci-dessous sont présentés les paramètres du bloc clientBrowserInfo (données sur le navigateur du client).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userAgent | String [1..2048] | Agent du navigateur. |
| Facultatif | OS | String | Système d'exploitation. |
| Facultatif | OSVersion | String | Version du système d'exploitation. |
| Facultatif | browserAcceptHeader | String [1..2048] | En-tête Accept, qui informe le serveur des formats (ou types MIME) pris en charge par le navigateur. |
| Facultatif | browserIpAddress | String [1..45] | Adresse IP du navigateur. |
| Facultatif | browserLanguage | String [1..8] | Langue du navigateur. |
| Facultatif | browserTimeZone | String | Fuseau horaire du navigateur. |
| Facultatif | browserTimeZoneOffset | String [1..5] | Décalage du fuseau horaire en minutes entre l'heure locale de l'utilisateur et UTC. |
| Facultatif | colorDepth | String [1..2] | Profondeur de couleur de l'écran, en bits. |
| Facultatif | fingerprint | String | Empreinte du navigateur - identifiant numérique unique du navigateur. |
| Facultatif | isMobile | Boolean | Valeurs possibles : true ou false. Indicateur signalant qu'un appareil mobile est utilisé. |
| Facultatif | javaEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de java est activée dans le navigateur. |
| Facultatif | javascriptEnabled | Boolean | Valeurs possibles : true ou false. Indicateur signalant que la prise en charge de javascript est activée dans le navigateur. |
| Facultatif | plugins | String | Liste des plugins utilisés dans le navigateur, séparés par des virgules. |
| Facultatif | screenHeight | Integer [1..6] | Hauteur de l'écran en pixels. |
| Facultatif | screenWidth | Integer [1..6] | Largeur de l'écran en pixels. |
| Facultatif | screenPrint | String | Données sur les paramètres d'impression du navigateur, y compris la résolution, la profondeur de couleur, la densité de pixels. |
Exemple de bloc clientBrowserInfo :
"clientBrowserInfo":
{
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
"fingerprint":850891523,
"OS":"Windows",
"OSVersion":"10",
"isMobile":false,
"screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
"colorDepth":24,
"screenHeight":"864",
"screenWidth":"1536",
"plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
"javaEnabled":false,
"javascriptEnabled":true,
"browserLanguage":"it-IT",
"browserTimeZone":"Europe/Rome",
"browserTimeZoneOffset":-120,
"browserAcceptHeader":"gzip",
"browserIpAddress":"x.x.x.x"
}Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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 | 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 | info |
String | En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
|
| Facultatif | error |
String [1..512] | Message d'erreur (si une erreur a été retournée dans la réponse) dans la langue transmise dans la requête. |
| Facultatif | processingErrorType |
String | Type d'erreur de processing. Transmis si l'erreur se produit du côté du processing et non dans la passerelle de paiement, tandis que le nombre de tentatives de paiement n'est pas dépassé et qu'il n'y a pas encore eu de redirection vers la page finale. |
| Facultatif | displayErrorMessage |
String | Message d'erreur affiché. |
| Facultatif* | errorTypeName |
String | Paramètre nécessaire à la page frontend pour déterminer le type d'erreur. Obligatoire pour les paiements échoués. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | termUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. Il s'agit de l'URL vers laquelle l'ACS redirige le porteur de carte après authentification. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | bindingId |
String [1..255] | Identifiant de liaison créé lors du paiement de la commande ou utilisé pour le paiement. Présent uniquement si le marchand a l'autorisation de travailler avec les liaisons. |
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). |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/paymentOrderBinding.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
--data bindingId=01491394-63a6-7d45-a88f-7bce00a7d8c0 \
--data cvc=123 \
--data tii=F \
--data language=enExemple de réponse réussie pour paiement SSL (sans 3-D Secure)
{
"redirect": "https://dev.bpcbt.com/payment/merchants/temp/finish.html?orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0&lang=en",
"info": "Your order is proceeded, redirecting...",
"errorCode": 0
}Exemple de réponse réussie pour paiement 3D-Secure
{
"info": "Your order is proceeded, redirecting...",
"errorCode": 0,
"acsUrl": "https://theacsserver.com/acs/auth/start.do",
"paReq": "eJxVUu9vgjAQ/...4BaHYvAI=",
"termUrl": "https://dev.bpcbt.com/payment/rest/finish3ds.do?lang=en"
}Exemple de réponse avec erreur
{
"error": "[clientId] is empty",
"errorCode": 5,
"is3DSVer2": false,
"errorMessage": "[clientId] is empty"
}Obtention des liaisons
Pour obtenir la liste des liaisons client, utilisez la requête https://dev.bpcbt.com/payment/rest/getBindings.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 | 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 | 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 | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| 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 | bindingType |
String | Type de liaison attendu dans la réponse (s'il n'est pas spécifié, tous les types sont retournés). Valeurs possibles :
|
| Facultatif | showExpired |
Boolean | Paramètre true/false déterminant s'il faut afficher les liaisons avec les cartes expirées. Valeur par défaut : false. |
| Facultatif | merchantLogin |
String [1..255] | Pour obtenir la liste des identifiants sauvegardés par le client d'un autre marchand, indiquez dans ce paramètre le login du marchand (pour le compte API). Peut être utilisé seulement si vous avez l'autorisation de consulter les transactions d'autres vendeurs ou si le vendeur indiqué est votre vendeur filial. Vous et le vendeur indiqué devez avoir l'autorisation de travailler avec les identifiants sauvegardés (liaisons). |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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 | bindings |
Object | Élément avec des blocs contenant les paramètres de liaisons. Voir la description ci-dessous. |
L'élément bindings contient les paramètres suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | maskedPan |
String [1..19] | Numéro de carte masqué utilisé pour le paiement. Contient les 6 premiers et les 4 derniers chiffres réels du numéro de carte au format XXXXXX**XXXX. |
| Facultatif | paymentWay |
String | Méthode d'exécution du paiement (paiement avec saisie des données de carte, paiement par liaison, etc.). Les valeurs supplémentaires possibles du paramètre sont présentées ci-dessous |
| Obligatoire | 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 :
|
| Obligatoire | expiryDate |
Integer [6] | Date d'expiration de la carte dans le format suivant : YYYYMM. |
| Facultatif | bindingCategory |
String | Destination de la liaison attendue en réponse. Valeurs possibles : COMMON, INSTALLMENT, RECURRENT. |
| 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 | displayLabel |
Integer [1..16] | Les 4 derniers chiffres du PAN original avant la tokenisation. |
| Facultatif | paymentSystem |
String | Nom du système de paiement. Les valeurs suivantes sont possibles :
|
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/getBindings.do \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data clientId=dos-clientos \
--data bindingType=CExemple de réponse réussie
{
"errorCode":"0",
"errorMessage":"Success",
"bindings": [
{
"bindingId": "44779116-41a5-7798-b072-c0a30760e2b0",
"maskedPan": "411111**1111",
"expiryDate": "203412",
"paymentWay": "TOKEN_PAY",
"paymentSystem": "CARD",
"displayLabel": "XXXXXXXXXXXX1111",
"bindingCategory": "COMMON"
}
]
}Obtention des liaisons par numéro de carte
Pour obtenir la liste de toutes les liaisons de carte bancaire, la requête https://dev.bpcbt.com/payment/rest/getBindingsByCardOrId.do est utilisée.
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 requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Condition | pan |
String [1..19] | Numéro de carte de paiement (obligatoire, si bindinId n'est pas transmis). La valeur pan remplace la valeur bindingId. |
| Condition | 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 | showExpired |
Boolean | Paramètre true/false déterminant s'il faut afficher les liaisons avec les cartes expirées. Valeur par défaut : false. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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 | bindings |
Object | Élément avec des blocs contenant les paramètres des liaisons : bindingId, maskedPan, expiryDate, clientId
|
| 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 | maskedPan |
String [1..19] | Numéro de carte masqué utilisé pour le paiement. Contient les 6 premiers et les 4 derniers chiffres réels du numéro de carte au format XXXXXX**XXXX. |
| Facultatif | expiryDate |
Integer [6] | Date d'expiration de la carte dans le format suivant : YYYYMM. |
| 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/getBindingsByCardOrId.do \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data pan=4000001111111118Exemple de requête réussie
{
"errorCode":"0",
"errorMessage":"Success",
"bindings": [
{
"bindingId":"69d6a793-afb5-79be-8ce7-63ff00a8656a",
"maskedPan":"400000**1118",
"expiryDate":"203012",
"clientId":"12"
}
{
"bindingId":"6a8c0738-cc88-4200-acf6-afc264d66cb0",
"maskedPan":"400000**1118",
"expiryDate":"203012",
"clientId":"13"
}
]
}Désactivation de la liaison
Pour désactiver une liaison existante, utilisez la requête https://dev.bpcbt.com/payment/rest/unBindCard.do.
Lors de l'exécution de la requête, il faut 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..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | 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 :
|
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/unBindCard.do \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dcExemple de réponse (erreur)
{
"errorCode":"2",
"errorMessage":"La liaison n'est pas active",
}Activation de la liaison
La requête utilisée pour activer une liaison existante qui a été désactivée s'appelle https://dev.bpcbt.com/payment/rest/bindCard.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..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | 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 :
|
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/bindCard.do \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dcExemple de réponse (erreur)
{
"errorCode":"2",
"errorMessage":"Binging is active",
}Prolongation de la durée de validité de la liaison
La requête utilisée pour prolonger la durée de validité d'une liaison existante s'appelle https://dev.bpcbt.com/payment/rest/extendBinding.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
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | 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 :
|
| Obligatoire | newExpiry |
Integer [6] | Nouvelle date (année et mois) d'expiration au format YYYYMM. |
| Obligatoire | 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. |
Paramètres de la réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/extendBinding.do \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc
--data newExpiry=202212
--data language=enExemple de réponse
{
"errorCode":"0",
"errorMessage":"Success",
}Paiement récurrent
Pour effectuer un paiement récurrent, utilisez la requête https://dev.bpcbt.com/payment/recurrentPayment.do. La requête est utilisée pour enregistrer et payer une commande.
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..100] | 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. |
| 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 | 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 | 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 :
|
| Obligatoire | 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 | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Facultatif | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Facultatif | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Facultatif | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Facultatif | additionalParameters |
Object | Paramètres supplémentaires de la commande, qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
|
| 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. |
| 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 :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | success |
Boolean | Paramètre principal qui indique que la demande a été traitée avec succès. Les valeurs suivantes sont disponibles :
Notez que la valeur true signifie que la demande a été traitée, et non que la commande a été payée.Des informations plus détaillées sur la façon de savoir si le paiement a réussi ou non sont disponibles ici. |
| Condition | data |
N/A | Ce paramètre n'est retourné qu'en cas de traitement réussi du paiement. Voir description ci-dessous. |
| Condition | error |
N/A | Ce paramètre n'est retourné qu'en cas d'erreur de paiement. Voir description ci-dessous. |
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). |
Le bloc data contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
Le bloc error contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | code |
String [1..3] | Code comme paramètre informatif, signalant une erreur. |
| Obligatoire | description |
String [1..598] | Explication technique détaillée de l'erreur - le contenu de ce paramètre n'est pas destiné à être affiché à l'utilisateur. |
| Obligatoire | message |
String [1..512] | Paramètre informatif constituant la description de l'erreur pour l'affichage à l'utilisateur. Le paramètre peut varier, il ne faut donc pas se référer explicitement à ses valeurs dans le code. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/recurrentPayment.do \
--header 'Content-Type: application/json' \
--data-raw '{
"userName" : "test_user",
"password" : "test_user_password",
"orderNumber" : "UAF-203974-DE-12",
"language" : "EN",
"bindingId": "bindingId",
"amount" : 1200,
"currency" : "978",
"description" : "Test description",
"additionalParameters" : {
"firstParamName" : "firstParamValue",
"secondParamName" : "secondParamValue"
"email" : "email@email.com"
}
}'Exemple de réponse - Succès
{
"success": true,
"data": {
"orderId": "f7beebe4-7c9a-43cf-8e26-67ab741f9b9e"
},
"orderStatus": {
"errorCode": "0",
"orderNumber": "UAF-203974-DE-12",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 12300,
"currency": "978",
"date": 1491333938243,
"orderDescription": "Test description",
"merchantOrderParams": [
{
"name": "firstParamName",
"value": "firstParamValue"
},
{
"name": "secondParamName",
"value": "secondParamValue"
}
],
"attributes": [],
"cardAuthInfo": {
"expiration": "203012",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "12345678",
"paymentSystem": "VISA",
"pan": "6777770000**0006"
},
"authDateTime": 1491333939454,
"terminalId": "11111",
"authRefNum": "111111111111",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 12300,
"depositedAmount": 12300,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryName": "<unknown>"
},
"chargeback": false,
"operations": [
{
"amount": 12300,
"cardHolder": "TEST CARDHOLDER",
"authCode": "123456"
}
]
}
}Erreur
{
"error": {
"code": "10",
"description": "Order with this number is already registered in the system.",
"message": "Order with this number is already registered in the system."
},
"success": false
}Paiement par versements
Pour effectuer un paiement par versements, utilisez la requête https://dev.bpcbt.com/payment/installmentPayment.do.
Lors de l'exécution de la requête, il est nécessaire d'utiliser l'en-tête :
Content-Type: application/json
Paramètres de la requête
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Condition | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Obligatoire | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Optionnel | language |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut spécifiée dans les paramètres du magasin est utilisée. Langues prises en charge : en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv. |
| Obligatoire | 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 :
|
| Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Optionnel | 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. |
| Optionnel | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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. |
| Optionnel | additionalParameters |
Object | Paramètres supplémentaires de la commande, qui sont stockés dans l'espace personnel du vendeur pour consultation ultérieure. Chaque nouvelle paire de nom de paramètre et sa valeur doit être séparée par une virgule. Ci-dessous un exemple d'utilisation.{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
|
| Obligatoire | preAuth |
Boolean | Paramètre déterminant la nécessité d'une autorisation préalable (blocage des fonds sur le compte client avant leur débit). Les valeurs suivantes sont disponibles :
|
| Optionnel | autocompletionDate |
String [19] | Date et heure de l'achèvement automatique du paiement en deux étapes dans le format suivant : 2025-12-29T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service d'assistance technique. |
| Optionnel | autoReverseDate |
String [19] | Date et heure d'annulation automatique du paiement en deux étapes dans le format suivant : 2025-06-23T13:02:51. Fuseau horaire utilisé : UTC+0. Pour activer l'envoi de ce champ vers le système de traitement, contactez le service de support technique. |
| Optionnel | features |
String | Fonctions de commande. Pour spécifier plusieurs fonctions, utilisez ce paramètre plusieurs fois dans une seule requête. Voici les valeurs possibles.
|
| Condition | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| Optionnel | 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. |
| Optionnel | 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. |
| Optionnel | 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. |
| Optionnel | 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. |
| Optionnel | 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 :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Paramètres de la réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Optionnel | orderId |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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. |
| Condition | orderStatus |
Object | Contient les paramètres du statut de la commande et n'est retourné que si la passerelle de paiement a reconnu tous les paramètres de la requête comme corrects. Voir la description ci-dessous. |
Le bloc orderStatus contient les éléments suivants.
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Optionnel | errorCode |
String [1..2] | Paramètre d'information en cas d'erreur, qui peut avoir différentes valeurs de code :
|
| Optionnel | 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. |
| Optionnel | orderNumber |
String [1..36] | Numéro de commande (ID) dans le système du marchand ; doit être unique pour chaque commande. |
| Optionnel | 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 :
|
| Optionnel | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Optionnel | actionCodeDescription |
String [1..512] | Description de actionCode, retournée par le système de traitement de la banque. |
| Optionnel | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Optionnel | 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. |
| Optionnel | date |
Integer | Date d'enregistrement de la commande comme nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Optionnel | ip |
String [1..39] | Adresse IP du payeur. IPv6 est supporté dans toutes les requêtes (jusqu'à 39 caractères). |
| Optionnel | chargeback |
Boolean | Les fonds ont-ils été retournés de force à l'acheteur par la banque. Valeurs possibles : true, false. |
| Optionnel | merchantOrderParams |
N/A | Section avec attributs dans laquelle sont transmis les paramètres supplémentaires du marchand. Voir la description ci-dessous. |
| Optionnel | attributes |
Object | Attributs de la commande dans le système de paiement (numéro de commande). Voir la description ci-dessous. |
| Optionnel | cardAuthInfo |
Object | Informations sur la carte de paiement de l'acheteur. Voir la description ci-dessous. |
| Optionnel | authDateTime |
Integer | Date et heure d'autorisation, affichées comme le nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps 24 février 2025, 10:25:20 (UTC)). |
| Optionnel | terminalId |
String [1..10] | Identifiant du terminal dans le système qui traite le paiement. |
| Optionnel | authRefNum |
String [1..24] | Numéro d'autorisation du paiement, qui lui est attribué lors de l'enregistrement du paiement. |
| Optionnel | paymentAmountInfo |
Object | Paramètre contenant des paramètres imbriqués avec des informations sur les montants de confirmation, de débit et de remboursement. Voir la description ci-dessous. |
| Optionnel | bankInfo |
Object | Contient le paramètre imbriqué bankCountryName. Voir la description ci-dessous. |
| Optionnel | bindingInfo |
Object | Objet contenant des informations sur la liaison par laquelle le paiement est effectué. Voir la description ci-dessous. |
| Facultatif | operations |
Object | Objet contenant des informations sur les opérations. Voir la description ci-dessous. |
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). |
Le bloc merchantOrderParams contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | name |
String [1..255] | Nom du paramètre supplémentaire du marchand. |
| Obligatoire | value |
String [1..1024] | Valeur du paramètre supplémentaire du vendeur - jusqu'à 1024 caractères. |
Le bloc attributes contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | name |
String [1..255] | Nom du paramètre supplémentaire. |
| Obligatoire | value |
String [1..1024] | Valeur du paramètre supplémentaire - jusqu'à 1024 caractères. |
Le bloc cardAuthInfo contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | expiration |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. |
| Obligatoire | cardholderName |
String [1..26] | Nom du porteur de carte en lettres latines. Caractères autorisés : lettres latines, point, espace. |
| Obligatoire | approvalCode |
String [6] | Code d'autorisation du système de paiement international. Ce champ a une longueur fixe (six caractères) et peut contenir des chiffres et des lettres latines. |
| Obligatoire | pan |
String [1..19] | DPAN masqué : numéro lié à l'appareil mobile de l'acheteur et remplissant les fonctions de numéro de carte de paiement dans le système Apple Pay. |
| Obligatoire | maskedPan |
String [1..19] | Numéro de carte masqué utilisé pour le paiement. Contient les 6 premiers et les 4 derniers chiffres réels du numéro de carte au format XXXXXX**XXXX. |
| Obligatoire | paymentSystem |
String | Nom du système de paiement. Les valeurs suivantes sont possibles :
|
Le bloc paymentAmountInfo contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | paymentState |
String | État de la commande, le paramètre peut prendre les valeurs suivantes :
|
| Obligatoire | approvedAmount |
Integer [0..12] | Montant en unités minimales de devise (par exemple, en centimes) qui a été bloqué sur le compte de l'acheteur. Utilisé uniquement dans les paiements en deux étapes. En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Obligatoire | depositedAmount |
Integer [1..12] | Montant du débit en unités minimales de devise (par exemple, en centimes). En cas d'autorisation partielle, ce montant peut être inférieur au montant demandé lors de l'enregistrement de la commande. |
| Obligatoire | refundedAmount |
Integer [1..12] | Montant du remboursement dans les unités minimales de la devise. |
| Obligatoire | totalAmount |
Integer [1..20] | Montant de la commande plus commission, si elle existe. |
Le bloc bankInfo contient les éléments suivants.
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | bankCountryName |
String [1..160] | Pays de la banque émettrice. |
L'élément bindingInfo contient les paramètres suivants.
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| 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 :
|
L'élément operations contient les paramètres suivants.
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| Facultatif | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | cardHolder |
String [1..26] | Nom du titulaire de la carte en lettres latines. Ce paramètre n'est transmis qu'après le paiement de la commande. |
| Facultatif | authCode |
Integer [6] | Paramètre obsolète (non utilisé). Sa valeur est toujours 2 indépendamment du statut de la commande et du code d'autorisation du système de traitement. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/installmentPayment.do \
--header 'Content-Type: application/json' \
--data '{
"userName": "test_user",
"password": "test_user_password",
"orderNumber": "UAF-203974-DE-12",
"language": "EN",
"bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820",
"amount": 12300,
"currency": "978",
"description" : "Test description",
"additionalParameters": {
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
}
}'Exemples de réponse
{
"errorCode": 0,
"errorMessage": "Success",
"orderId": "0e441115-f3bc-711c-8827-2fdc00b4f820",
"orderStatus": {
"errorCode": "0",
"orderNumber": "7033",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 12300,
"currency": "978",
"date": 1618340470944,
"orderDescription": "Test description",
"merchantOrderParams": [
{
"name": "firstParamName",
"value": "firstParamValue"
},
{
"name": "secondParamName",
"value": "secondParamValue"
}
],
"transactionAttributes": [],
"attributes": [
{
"name": "mdOrder",
"value": "0e441115-f3bc-711c-8827-2fdc00b4f820"
}
],
"cardAuthInfo": {
"maskedPan": "400000**1118",
"expiration": "203012",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"paymentSystem": "VISA",
"product": "visa-product",
"secureAuthInfo": {
"eci": 7
},
"pan": "400000**1118"
},
"bindingInfo": {
"clientId": "TEST CARDHOLDER",
"bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820"
},
"authDateTime": 1618340471076,
"authRefNum": "111111111111",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 12300,
"depositedAmount": 12300,
"refundedAmount": 0,
"totalAmount": 12300
},
"bankInfo": {
"bankName": "ES TEST BANK",
"bankCountryCode": "ES",
"bankCountryName": "Spain"
},
"chargeback": false,
"operations": [
{
"amount": 12300,
"cardHolder": "TEST CARDHOLDER",
"authCode": "123456"
}
]
},
"error": false
}3DS
Finalisation du paiement 3DS2 via API
Pour finaliser la commande 3DS2 via API, la méthode https://dev.bpcbt.com/payment/rest/finish3dsVer2Payment.do est utilisée.
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
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | threeDSServerTransId |
String [1..36] | Identifiant de transaction créé sur le serveur 3DS. Obligatoire pour l'authentification 3DS. |
| Facultatif | 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. |
Paramètres de la réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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 | 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 | is3DSVer2 |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient de 3DS2. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/finish3dsVer2Payment.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data threeDSServerTransId=33b17cb5-b4a5-48ac-a3b8-bc8d6d979a46 \
--data userName=test_user \
--data password=test_user_password \Exemple de réponse
{
"redirect": "http://test.com?orderId=f61e2a41-34b9-7a2d-b4d6-83ac00c305c8&lang=en",
"errorCode": 0,
"is3DSVer2": true
}Exemple de requête avec le paramètre threeDSVer2MdOrder
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/finish3dsVer2Payment.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data threeDSServerTransId=33b17cb5-b4a5-48ac-a3b8-bc8d6d979a46 \
--data threeDSVer2MdOrder=fbcb596f-25ba-70e7-a6cf-4fb100c305c8 \
--data userName=test_user \
--data password=test_user_password \Exemple de réponse
{
"redirect": "http://test.com?orderId=f61e2a41-34b9-7a2d-b4d6-83ac00c305c8&lang=en",
"errorCode": 0,
"is3DSVer2": true
}Continuation du paiement pour 3DS2
Pour continuer le paiement avec l'autorisation 3DS2, utilisez la requête https://dev.bpcbt.com/payment/rest/3ds/continue.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 |
|---|---|---|---|
| Condition | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Condition | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| Obligatoire | mdOrder |
String [1..36] | Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | errorCode |
String [1..2] | Paramètre d'information 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 | En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
|
| 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. |
| Condition | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Condition | packedCReq |
String | Données challenge request empaquetées. Obligatoire, si une redirection vers ACS est nécessaire. Cette valeur doit être utilisée comme valeur du paramètre creq du lien vers ACS (acsUrl), pour rediriger le client vers ACS. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/3ds/continue.do \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data mdOrder=eb708f0a-2683-7437-b458-f80400b40dc0 \
--data userName=test-user \
--data password=test-passwordExemple de réponse (3DS2 complet, requête réussie)
{
"info": "Your order is proceeded, redirecting...",
"errorCode": 0,
"acsUrl": "https://bestbank.com/acs2/acs/creq",
"is3DSVer2": true,
"packedCReq": "eyJ0aHJlZURTU...6IjA1In0"
}Exemple de réponse (frictionless 3DS2, requête réussie)
{
"redirect": "https://merchant.com/returnUrl?orderId=9666296c-e4f1-7285-a57c-20eb00b40dc1&lang=en",
"info": "Your order is proceeded, redirecting...",
"errorCode": 0,
"is3DSVer2": true
}Exemple de réponse (erreur - statut inconnu dans ARes)
{
"redirect": "https://merchant.com/failUrl?orderId=b69ac21f-6cd3-7e06-931d-d90100b40dc1&lang=en",
"error": "Error 3-D Secure authorization.",
"errorCode": 0,
"is3DSVer2": true,
"errorTypeName": "TDS_UNKNOWN_ARES_STATUS",
"processingErrorType": "MANDATORY_3DSECURE",
"errorMessage": "Error 3-D Secure authorization."
}Exemple de réponse (erreur d'autorisation)
{
"redirect": "https://merchant.com/failUrl?orderId=de056d10-f91d-7c91-a3de-559800b40dc1&lang=en",
"error": "Operation declined. Please check the data and available balance of the account.",
"errorCode": 0,
"is3DSVer2": true,
"errorTypeName": "DATA_INPUT_ERROR",
"processingErrorType": "CLIENT_ERROR",
"errorMessage": "Operation declined. Please check the data and available balance of the account."
}Divers
Vérification de carte
La méthode https://dev.bpcbt.com/payment/rest/verifyCard.do est utilisée pour vérifier une carte. Aucun paiement n'est effectué, et la commande passe immédiatement au statut REVERSED.
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 requête
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | userName |
String [1..30] | Identifiant du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu de l'identifiant et du mot de passe un token public est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Facultatif | password |
String [1..30] | Mot de passe du compte API du vendeur. Si pour l'authentification lors de l'enregistrement au lieu du login et du mot de passe un token ouvert est utilisé (paramètre token), il n'est pas nécessaire de transmettre le mot de passe. |
| Facultatif | token |
String [1..256] | Valeur utilisée pour l'authentification du vendeur lors de l'envoi de requêtes à la passerelle de paiement. Si vous transmettez ce paramètre, ne transmettez pas userName et password. |
| Obligatoire | 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 | pan |
String [1..19] | Numéro de carte de paiement |
| Facultatif | cvc |
String [3] | La transmission du paramètre est déterminée par le type de paiement :
|
| Facultatif | expiry |
Integer [6] | Date d'expiration de la carte au format suivant : YYYYMM. Obligatoire si ni seToken, ni bindingId ne sont transmis. |
| Facultatif | cardholderName |
String [1..26] | Nom du porteur de carte en lettres latines. Caractères autorisés : lettres latines, point, espace. |
| Facultatif | backUrl |
String [1..512] | Adresse URL vers laquelle l'utilisateur sera redirigé en cas de paiement réussi. Utilisez le chemin complet en spécifiant le protocole, par exemple https://test.com (et non test.com).Sinon, l'utilisateur sera redirigé vers une adresse URL du type suivant : http://paymentGatewayURL/merchantURL |
| 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 | description |
String [1..598] | Description de la commande dans n'importe quel format. Pour activer l'envoi de ce champ vers le système de traitement, contactez le support technique. 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 | 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 | 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 | threeDSSDK |
Boolean | Valeurs possibles : true ou false Indicateur montrant que le paiement provient du 3DS SDK. |
| 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. |
| 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 :
|
Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Conditionnel | billingCity |
String [0..50] | Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa. |
| Conditionnel | billingCountry |
String [0..50] | Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa. |
| Conditionnel | billingAddressLine1 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa. |
| Facultatif | billingAddressLine2 |
String [0..50] | Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2. |
| Facultatif | billingAddressLine3 |
String [0..50] | Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3. |
| Facultatif | billingPostalCode |
String [0..9] | Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS. |
| Facultatif | billingState |
String [0..50] | État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région. |
| Obligatoire | payerAccount |
String [1..32] | Numéro de compte de l'expéditeur. |
| Conditionnel | payerLastName |
String [1..64] | Nom de famille de l'expéditeur. Obligatoire pour Visa. |
| Conditionnel | payerFirstName |
String [1..35] | Prénom de l'expéditeur. Obligatoire pour Visa. |
| Facultatif | payerMiddleName |
String [1..35] | Nom patronymique de l'expéditeur. |
| Facultatif | payerCombinedName |
String [1..99] | Nom complet de l'expéditeur. |
| Facultatif | payerIdType |
String [1..8] | Type du document d'identification fourni de l'expéditeur. Valeurs possibles :
|
| Facultatif | payerIdNumber |
String [1..99] | Numéro du document d'identification fourni de l'expéditeur. |
| Conditionnel | payerBirthday |
String [1..20] | Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa. |
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. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | errorCode |
String [1..2] | Paramètre d'information 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 | 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 | authCode |
Integer [6] | Paramètre obsolète (non utilisé). Sa valeur est toujours 2 indépendamment du statut de la commande et du code d'autorisation du système de traitement. |
| Facultatif | actionCode |
Integer | Code de réponse du traitement bancaire. Voir la liste des codes de réponse ici. |
| Facultatif | actionCodeDescription |
String [1..512] | Description de actionCode, retournée par le système de traitement de la banque. |
| Facultatif | time |
Integer | Temps d'exécution de la transaction en nombre de millisecondes écoulées depuis 00:00 GMT le 1er janvier 1970 (temps Unix). Exemple : 1740392720718 (correspond au temps du 24 février 2025, 10:25:20 (UTC)). |
| Facultatif | eci |
Integer [1..4] | Indicateur de commerce électronique. Spécifié uniquement après le paiement de la commande et en cas de présence de l'autorisation correspondante. Ci-dessous se trouve le décodage des codes ECI.
|
| 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 | rrn |
Integer [1..12] | Reference Retrieval Number - identifiant de transaction attribué par la banque acquéreuse. |
| Facultatif | acsUrl |
String [1..512] | En cas de réponse réussie lors du paiement 3D-Secure. URL pour la redirection vers ACS. Obligatoire si une redirection vers ACS est nécessaire. Pour plus de détails, voir Redirection vers ACS. |
| Facultatif | 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. |
| Facultatif | paReq |
String [1..255] | En cas de réponse réussie lors du paiement 3D-Secure. PAReq (Payment Authentication Request) — message qui doit être envoyé à l'ACS avec la redirection. Ce message contient des données en encodage Base64, nécessaires pour l'authentification du porteur de carte. Pour plus de détails, voir Redirection vers ACS. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/verifyCard.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data pan=4000001111111118 \
--data cvc=123 \
--data expiry=203012Exemple de réponse
{
"errorCode": "0",
"errorMessage": "Success",
"orderId": "cfc238ca-68f9-745c-ba7e-eb9100af79e0",
"orderNumber": "12017",
"rrn": "111111111115",
"authCode": "123456",
"actionCode": 0,
"actionCodeDescription": "",
"time": 1595284781180,
"eci": "07",
"amount": 0,
"currency": "978"
}API des prélèvements récurrents
Les requêtes API présentées ci-dessous permettent de configurer les tâches pour les prélèvements récurrents. Par la suite, les prélèvements sont automatiquement exécutés selon le calendrier défini.
Création d'une tâche
Pour créer une tâche récurrente, utilisez la requête https://dev.bpcbt.com/recurrent/v1/task/create.
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 |
|---|---|---|---|
| Facultatif | locale |
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. |
| Facultatif | merchantLogin |
String [1..30] | Pour créer une tâche au nom d'un autre marchand, spécifiez son login (pour le compte API) dans ce paramètre. Peut être utilisé uniquement si vous avez la permission de consulter les transactions d'autres vendeurs ou si le vendeur spécifié est votre vendeur filial. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente à créer. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche récurrente créée).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Facultatif | bindingId |
String [1..255] | Identifiant d'une liaison déjà existante (identifiant de carte, tokenisée par la passerelle). Il peut être utilisé seulement si le marchand a l'autorisation pour travailler avec les liaisons. |
| Facultatif | cardHolder |
String [1..26] | Nom du porteur de carte en lettres latines. |
| 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. |
| 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 | expiry |
Integer | Durée de validité de la carte dans le format suivant: YYYYMM. |
| Obligatoire | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. |
| Facultatif | pan |
String [1..19] | Numéro masqué de la carte qui a été utilisée pour le paiement. |
| Facultatif | attributes |
Object | Ensemble d'attributs de la tâche, structure:{name1:value1,…,nameN:valueN}. L'ensemble exact d'attributs doit être convenu avec la Banque. |
| Facultatif | params |
Object | Ensemble de paramètres supplémentaires de forme arbitraire, structure:{name1:value1,…,nameN:valueN}
|
| Obligatoire | scheduleData |
Object | Ensemble de données sur l'horaire de la tâche. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc scheduleData (données sur le calendrier des paiements).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Mandatory | scheduledSince |
String [26] | Date et heure auxquelles la tâche doit commencer à s'exécuter. Format : yyyy-MM-dd'T'HH:mm:ss.SSSZ
|
| Mandatory | scheduledTill |
String [26] | Date et heure auxquelles la tâche doit se terminer. Format : yyyy-MM-dd'T'HH:mm:ss.SSSZ
|
| Mandatory | timeUnit |
String | Unité de temps. Valeurs admissibles : Nanos, Micros, Millis, Seconds, Minutes, Hours, HalfDays, Days, Weeks, Months, Years, Decades, Centuries, Millennia, Eras, Forever
|
| Mandatory | value |
integer | Valeur de fréquence |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs autorisées : SUCCESS, FAIL. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente créée. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche récurrente créée).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | created |
String | Date et heure de création de la tâche. |
| Obligatoire | merchantLogin |
String | Login du marchand. |
| Obligatoire | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. |
| Obligatoire | nextPaymentDate |
String | Date du prochain paiement. |
| Obligatoire | state |
String | État de la tâche. Valeurs admissibles :
|
| Obligatoire | taskUuid |
String | Identifiant unique dans le service de débits récurrents. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/task/create \
--header 'Content-Type: application/json' \
--data '{
"username":"test_user",
"password":"test_user_password",
"locale":"en",
"task":{
"merchantTaskUuid":"c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82",
"clientId":"TestClient",
"bindingId": "5eb094e1-4a96-7b33-af5f-a29407a73a93",
"scheduleData": {
"value":"1",
"timeUnit":"DAYS",
"scheduledSince":"2024-01-24T00:00:00.000+0300",
"scheduledTill":"2024-02-24T00:00:00.000+0300"
},
"amount":100,
"currency":643,
"params":{
"description":"desc",
"phone":"576015555556"
}
}
}'Exemple de réponse
{
"status": "SUCCESS",
"task": {
"created": "2024-01-24T10:23:35.434591+03:00",
"merchantLogin": "testMerch",
"taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
"nextPaymentDate": "2024-01-24T00:00:00+03:00",
"state": "CREATED",
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
}
}Modification de la tâche
Pour modifier une tâche récurrente existante, utilisez la requête https://dev.bpcbt.com/recurrent/v1/task/modify.
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 |
|---|---|---|---|
| Facultatif | locale |
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. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente à modifier. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche récurrente modifiable).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Optionnel | 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. |
| Optionnel | cardholder |
String | Nom du titulaire de la carte en lettres latines. |
| Optionnel | 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. |
| Optionnel | expiry |
String [6] | Date d'expiration de la carte au format : YYYYMM. |
| Optionnel | pan |
String [1..19] | Numéro masqué de la carte utilisée pour le paiement. |
| Optionnel | attributes |
Object | Ensemble d'attributs de la tâche, structure :{name1:value1,…,nameN:valueN}. L'ensemble exact d'attributs doit être convenu avec la Banque. |
| Optionnel | params |
Object | Ensemble de paramètres supplémentaires de forme arbitraire, structure :{name1:value1,…,nameN:valueN}
|
| Obligatoire | taskIdentifier |
Object | Identifiant unique ou ensemble d'identifiants de la tâche. Voir paramètres imbriqués. |
Ci-dessous sont listés les paramètres du bloc taskIdentifier (ensemble d'identifiants de tâche récurrente).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | merchantLogin |
String | Login du marchand. Doit être défini lors de la recherche par merchantTaskUuid. |
| Facultatif | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. Obligatoire si taskUuid n'est pas défini. |
| Facultatif | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. Obligatoire si merchantTaskUuid n'est pas défini. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs autorisées : SUCCESS, FAIL. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente modifiée. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche récurrente modifiée).
| Obligation | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | updated |
String | Date et heure de la dernière mise à jour de la tâche. |
| Obligatoire | merchantLogin |
String | Login du marchand. |
| Obligatoire | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. |
| Obligatoire | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/task/modify \
--header 'Content-Type: application/json' \
--data '{
"username":"test_user",
"password":"test_user_password",
"task":{
"taskIdentifier": {
"taskUuid":"9ae9f36d-0ba3-4686-87c4-a5ec77c562a4"
},
"bindingId":"5eb094e1-4a96-7b33-af5f-a29407a73a93",
"clientId":"TestClient",
"params":{
"description":"new description",
"phone":"+576015555558"
}
}'Exemple de réponse
{
"status": "SUCCESS",
"task": {
"updated": "2024-01-23T14:10:03.730644+03:00",
"merchantLogin": "testMerch",
"taskUuid": "9ae9f36d-0ba3-4686-87c4-a5ec77c562a4",
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c80"
}
}Obtention d'informations sur la tâche
Pour obtenir des informations sur la tâche récurrente, utilisez la requête https://dev.bpcbt.com/recurrent/v1/task/get.
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 |
|---|---|---|---|
| Facultatif | locale |
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. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | taskIdentifier |
Object | Identifiant unique ou ensemble d'identifiants de la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont listés les paramètres du bloc taskIdentifier (ensemble d'identifiants de tâche récurrente).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | merchantLogin |
String | Login du marchand. Doit être défini lors de la recherche par merchantTaskUuid. |
| Facultatif | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. Obligatoire si taskUuid n'est pas défini. |
| Facultatif | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. Obligatoire si merchantTaskUuid n'est pas défini. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs autorisées : SUCCESS, FAIL. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche récurrente).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Mandatory | amount |
Integer [0..12] | Montant du paiement dans les unités minimales de la devise (par exemple, en kopecks). |
| Optional | attemptsHistory |
Array of objects | Toutes les tentatives de paiement dans l'ordre chronologique. Chaque tentative de paiement est représentée par un objet attemptsHistory. Voir paramètres imbriqués. |
| Optional | bindingId |
String [1..255] | Identificateur d'une liaison déjà existante (identificateur de carte tokenisée par la passerelle). Il peut être utilisé uniquement si le marchand a l'autorisation de travailler avec les liaisons. |
| Optional | cardHolder |
String [1..26] | Nom du porteur de carte en lettres latines. |
| Optional | 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. |
| Mandatory | created |
String | Date et heure de création de la tâche. |
| Mandatory | 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. |
| Optional | expiry |
Integer [6] | Date d'expiration de la carte au format : YYYYMM. |
| Mandatory | lastPaymentDate |
String | Date du dernier paiement. |
| Optional | maskedPan |
String | Numéro de carte masqué. |
| Mandatory | merchantLogin |
String [1..30] | Login du marchand. |
| Mandatory | merchantTaskUuid |
String | Identificateur unique de la tâche dans le système du marchand. |
| Mandatory | nextPaymentDate |
String | Date du prochain paiement. |
| Optional | params |
Object | Ensemble de paramètres supplémentaires de forme arbitraire, structure :{name1:value1,…,nameN:valueN}
|
| Mandatory | scheduleData |
Object | Ensemble de données sur le planning de la tâche. Voir paramètres imbriqués. |
| Mandatory | state |
String | État de la tâche. Valeurs autorisées :
|
| Mandatory | taskUuid |
String | Identificateur unique dans le service de prélèvements récurrents. |
| Mandatory | updated |
String | Date et heure de la dernière mise à jour de la tâche. |
Ci-dessous sont énumérés les paramètres du bloc scheduleData (données sur le calendrier des paiements).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Mandatory | scheduledSince |
String [26] | Date et heure auxquelles la tâche doit commencer à s'exécuter. Format : yyyy-MM-dd'T'HH:mm:ss.SSSZ
|
| Mandatory | scheduledTill |
String [26] | Date et heure auxquelles la tâche doit se terminer. Format : yyyy-MM-dd'T'HH:mm:ss.SSSZ
|
| Mandatory | timeUnit |
String | Unité de temps. Valeurs admissibles : Nanos, Micros, Millis, Seconds, Minutes, Hours, HalfDays, Days, Weeks, Months, Years, Decades, Centuries, Millennia, Eras, Forever
|
| Mandatory | value |
integer | Valeur de fréquence |
Ci-dessous sont énumérés les paramètres du bloc attemptsHistory (données sur la fréquence d'exécution de la tâche).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | executed |
String | Date et heure de la tentative de paiement. Format : yyyy-MM-dd'T'HH:mm:ss.SSSZ
|
| Facultatif | orderId |
String | Identifiant unique de la transaction dans la passerelle de paiement |
| Facultatif | orderNumber |
String | Numéro de commande dans la passerelle de paiement |
| Obligatoire | paymentAttemptUuid |
String | Identifiant unique de la tentative de paiement |
| Obligatoire | paymentUuid |
String | Identifiant unique du paiement |
| Obligatoire | state |
String | État de la tâche. Valeurs autorisées :
|
| Obligatoire | technicalAttempt |
Boolean | Indicateur précisant si la tentative était technique |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/task/get \
--header 'Content-Type: application/json' \
--data '{
"username":"test_user",
"password":"test_user_password",
"taskIdentifier": {
"taskUuid":"8a6a5350-1be3-456e-8e81-e5c7eafbd699"
}
}'Exemple de réponse
{
"status": "SUCCESS",
"task": {
"taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
"state": "ACTIVE",
"merchantLogin": "testMerch",
"bindingId": "5eb094e1-4a96-7b33-af5f-a29407a73a93",
"clientId": "TestClient",
"created": "2024-01-24T10:23:35.434591+03:00",
"updated": "2024-01-24T10:23:35.434591+03:00",
"lastPaymentDate": "2024-01-24T00:00:00+03:00",
"nextPaymentDate": "2024-01-25T00:00:00+03:00",
"scheduleData": {
"scheduledSince": "2024-01-24T00:00:00.000+0300",
"scheduledTill": "2024-02-24T00:00:00.000+0300",
"value": 1,
"timeUnit": "DAYS"
},
"amount": 100,
"currency": 643,
"params": {
"phone": "576015555556",
"description": "description"
},
"attemptsHistory": [
{
"paymentAttemptUuid": "6873d7dc-4366-45c5-9de6-bc6e0aa05b3d",
"paymentUuid": "1a450005-ad46-4474-8940-eb154822296c",
"state": "SUCCEEDED",
"executed": "2024-01-24T10:23:41.788436+03:00",
"technicalAttempt": false,
"orderId": "d2d56b04-124b-77ab-9034-9f2307a73a93",
"orderNumber": "E5DFEDE990694FCFB5246AEC2612A355"
}
],
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
}
}Arrêter l'exécution de la tâche
Pour arrêter l'exécution d'une tâche récurrente, utilisez la requête https://dev.bpcbt.com/recurrent/v1/task/terminate.
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
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | locale |
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. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | taskIdentifier |
Object | Identifiant unique ou ensemble d'identifiants de la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont listés les paramètres du bloc taskIdentifier (ensemble d'identifiants de tâche récurrente).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | merchantLogin |
String | Login du marchand. Doit être défini lors de la recherche par merchantTaskUuid. |
| Facultatif | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. Obligatoire si taskUuid n'est pas défini. |
| Facultatif | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. Obligatoire si merchantTaskUuid n'est pas défini. |
Paramètres de la réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs autorisées : SUCCESS, FAIL. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche interrompue).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | updated |
String | Date et heure de la dernière mise à jour de la tâche. |
| Obligatoire | merchantLogin |
String | Login du marchand. |
| Obligatoire | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. |
| Obligatoire | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. |
| Obligatoire | state |
String | État de la tâche. Valeurs autorisées :
|
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/task/terminate \
--header 'Content-Type: application/json' \
--data '{
"username":"test_user",
"password":"test_user_password",
"taskIdentifier": {
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82",
"merchantLogin": "testMerch"
}
}'Exemple de réponse
{
"status": "SUCCESS",
"task": {
"updated": "2024-01-24T10:23:35.434591+03:00",
"merchantLogin": "testMerch",
"taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
"state": "TERMINATED",
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
}Activation de tâche
Pour activer une tâche récurrente, utilisez la requête https://dev.bpcbt.com/recurrent/v1/task/activate.
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 |
|---|---|---|---|
| Facultatif | locale |
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. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | taskIdentifier |
Object | Identifiant unique ou ensemble d'identifiants de la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont listés les paramètres du bloc taskIdentifier (ensemble d'identifiants de tâche récurrente).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | merchantLogin |
String | Login du marchand. Doit être défini lors de la recherche par merchantTaskUuid. |
| Facultatif | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. Obligatoire si taskUuid n'est pas défini. |
| Facultatif | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. Obligatoire si merchantTaskUuid n'est pas défini. |
Paramètres de réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs admissibles : SUCCESS, FAIL. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche activée).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | updated |
String | Date et heure de la dernière mise à jour de la tâche. |
| Obligatoire | merchantLogin |
String | Login du marchand. |
| Obligatoire | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. |
| Obligatoire | nextPaymentDate |
String | Date du prochain paiement. |
| Obligatoire | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. |
| Obligatoire | state |
String | État de la tâche. Valeurs admissibles :
|
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/task/activate \
--header 'Content-Type: application/json' \
--data '{
"username":"test_user",
"password":"test_user_password",
"taskIdentifier": {
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82",
"merchantLogin": "testMerch"
}
}'Exemple de réponse
{
"status": "SUCCESS",
"task": {
"updated": "2024-01-24T10:23:35.434591+03:00",
"merchantLogin": "testMerch",
"taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
"state": "ACTIVE",
"nextPaymentDate": "2024-01-25T00:00:00+03:00",
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
}
}Arrêt de l'exécution des tâches
Pour arrêter l'exécution de plusieurs tâches récurrentes, utilisez la requête https://dev.bpcbt.com/recurrent/v1/task/batchTerminate.
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 |
|---|---|---|---|
| Facultatif | locale |
String [2] | Clé de langue selon ISO 639-1. Si la langue n'est pas spécifiée, la langue par défaut indiquée dans les paramètres du magasin est utilisée. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | taskIdentifiers |
Array of Objects | Identifiants des tâches à arrêter. Chaque identifiant est représenté par un objet taskIdentifier. Voir paramètres imbriqués. |
Ci-dessous sont listés les paramètres du bloc taskIdentifier (ensemble d'identifiants de tâche récurrente).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | merchantLogin |
String | Login du marchand. Doit être défini lors de la recherche par merchantTaskUuid. |
| Facultatif | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. Obligatoire si taskUuid n'est pas défini. |
| Facultatif | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. Obligatoire si merchantTaskUuid n'est pas défini. |
Paramètres de la réponse
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs autorisées : SUCCESS, FAIL. |
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/task/batchTerminate \
--header 'Content-Type: application/json' \
--data '{
"locale":"EN",
"username":"testUser",
"password":"testPwd",
"tasksIdentifiers":[
{
"taskUuid":"0ba73819-65f8-43c4-9dc4-3870cb10416b"
},
{
"taskUuid":"0ba73820-65f8-43c4-9dc4-3870cb10416b"
}
]
}'Exemple de réponse
{
"status": "SUCCESS"
}Ignorer un paiement
Pour ignorer un paiement spécifique d'une tâche récurrente, utilisez la requête https://dev.bpcbt.com/recurrent/v1/payment/skip.
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
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | locale |
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. |
| Obligatoire | userName |
String [1..100] | Identifiant du compte API du vendeur. |
| Obligatoire | password |
String [1..30] | Mot de passe du compte API du vendeur. |
| Obligatoire | taskIdentifier |
Object | Identifiant unique ou ensemble d'identifiants de la tâche récurrente. Voir paramètres imbriqués. |
| Obligatoire | paymentNumber |
Integer | Numéro du paiement récurrent qui doit être ignoré. |
Ci-dessous sont listés les paramètres du bloc taskIdentifier (ensemble d'identifiants de tâche récurrente).
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Facultatif | merchantLogin |
String | Login du marchand. Doit être défini lors de la recherche par merchantTaskUuid. |
| Facultatif | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. Obligatoire si taskUuid n'est pas défini. |
| Facultatif | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. Obligatoire si merchantTaskUuid n'est pas défini. |
Paramètres de la réponse
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | status |
String | Statut de la réponse. Valeurs autorisées : SUCCESS, FAIL. |
| Obligatoire | task |
Object | Informations sur la tâche récurrente. Voir paramètres imbriqués. |
Ci-dessous sont énumérés les paramètres du bloc task (données sur la tâche activée).
| Caractère obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | updated |
String | Date et heure de la dernière mise à jour de la tâche. |
| Obligatoire | merchantLogin |
String | Login du marchand. |
| Obligatoire | merchantTaskUuid |
String | Identifiant unique de la tâche dans le système du marchand. |
| Obligatoire | nextPaymentDate |
String | Date du prochain paiement. |
| Obligatoire | taskUuid |
String | Identifiant unique dans le service de prélèvements récurrents. |
| Obligatoire | state |
String | État de la tâche. Valeurs admissibles :
|
Exemples
Exemple de requête
curl --request POST \
--url https://dev.bpcbt.com/recurrent/v1/payment/skip \
--header 'Content-Type: application/json' \
--data '{
"locale":"EN",
"username":"test_user",
"password":"test_user_password",
"taskIdentifier": {
"taskUuid":"7ae881fb-aee0-4446-883c-8087512bd26a"
},
"paymentNumber": 2
}'Exemple de réponse
{
"status": "SUCCESS",
"task": {
"updated": "2024-01-24T10:23:35.434591+03:00",
"merchantLogin": "testMerch",
"taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
"state": "ACTIVE",
"nextPaymentDate": "2024-01-25T00:00:00+03:00",
"merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
}
}Notifications de rappel
L'API de la passerelle de paiement permet de recevoir des notifications de rappel (callback-notifications) concernant les changements de statuts des paiements.
Informations générales
Événements pouvant faire l'objet de notifications
Vous pouvez recevoir des notifications concernant le changement de statut du paiement de la commande et d'autres événements dans la passerelle de paiement.
Les notifications les plus courantes décrivent les changements de statut de la commande, par exemple :
débit des fonds
rétention (mise en attente) des fonds
annulation du paiement
remboursement des fonds
Des intégrations plus complexes peuvent impliquer des déclencheurs de rappel supplémentaires, tels que :
- sauvegarde de la carte (c'est-à-dire création d'une liaison)
- activation/désactivation d'une liaison existante
- rejet des paiements, etc.
Le type de déclencheur est transmis dans le paramètre operation de la notification de rappel (voir les détails ci-dessous). Pour plus de commodité, les notifications pour les déclencheurs supplémentaires peuvent être dirigées vers une autre URL à l'aide du paramètre dynamicCallbackUrl dans les demandes d'enregistrement de commande.
Intégration via les notifications de rappel (callback)
Au lieu de la dernière étape de l'intégration via redirection vous pouvez choisir l'une des approches suivantes.
Utiliser returnUrl
Lorsque le code de votre site, situé à l'adresse returnUrl (par exemple, https://mybestmerchantreturnurl.com/?back&orderId=61c33664-85a0-7d6b-af26-09ee009c4000&lang=en), identifie le porteur de carte redirigé depuis la passerelle après la tentative de paiement, vous pouvez vérifier le statut de la commande à l'aide de la requête API getOrderStatusExtended.
Cette option est la plus simple, mais elle n'est pas tout à fait fiable, car la redirection du porteur de carte peut échouer (par exemple, suite à une coupure de connexion ou à la fermeture du navigateur par le porteur de carte), et returnUrl peut ne pas recevoir le déclencheur pour appeler getOrderStatusExtended.
curl --request POST \
--url https://dev.bpcbt.com/payment/rest/getOrderStatusExtended.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=016b6f47-4628-7ea2-80f5-6c6e00a7d8c0 \
--data language=en{
"errorCode": "0",
"errorMessage": "Success",
"orderNumber": "11008",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 2000,
"currency": "978",
"date": 1618577250840,
"orderDescription": "my_first_order",
"merchantOrderParams": [
{
"name": "browser_language_param",
"value": "en"
},
{
"name": "browser_os_param",
"value": "UNKNOWN"
},
{
"name": "user_agent",
"value": "curl/7.75.0"
},
{
"name": "browser_name_param",
"value": "DOWNLOAD"
}
],
"transactionAttributes": [],
"attributes": [
{
"name": "mdOrder",
"value": "016b7747-c4ed-70b3-bc36-fdd400a7d8c0"
}
],
"cardAuthInfo": {
"maskedPan": "555555**5599",
"expiration": "202412",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"pan": "555555**5599"
},
"authDateTime": 1618577288377,
"terminalId": "123456",
"authRefNum": "931793605827",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 2000,
"depositedAmount": 2000,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryCode": "UNKNOWN",
"bankCountryName": "<Unknown>"
}
}Utiliser le callback signé de la passerelle
Si vous savez comment traiter les certificats numériques et les signatures, vous pouvez utiliser un callback avec signature numérique et somme de contrôle (la passerelle permet de configurer l'envoi de telles notifications). La somme de contrôle est utilisée pour la vérification et la sécurité. Après que la signature de la notification a été vérifiée, il n'est plus nécessaire d'envoyer getOrderStatusExtended, car la notification contient en elle-même les informations sur le statut de la commande.
https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=1Types de notifications
Notifications sans somme de contrôle
Ces notifications contiennent uniquement des informations sur la commande, de sorte que le vendeur risque potentiellement d'accepter une notification envoyée par un attaquant comme étant authentique.
Notifications avec somme de contrôle
Ces notifications contiennent, en plus des informations sur la commande, un code d'authentification. Le code d'authentification représente une somme de contrôle des informations sur la commande. Cette somme de contrôle permet de s'assurer que la callback-notification a effectivement été envoyée par la passerelle de paiement.
Il existe deux façons d'implémenter les callback-notifications avec somme de contrôle :
- à l'aide de la cryptographie symétrique - la même clé cryptographique (symétrique) est utilisée pour former la somme de contrôle côté passerelle et pour sa vérification côté vendeur ;
- À l'aide de la cryptographie asymétrique - une clé privée, connue uniquement de la passerelle, est utilisée pour former la somme de contrôle côté passerelle de paiement, et une clé publique associée à la clé privée, connue des vendeurs et pouvant être distribuée librement, est utilisée pour confirmer la somme de contrôle.
La clé publique peut être téléchargée depuis l'espace personnel de la passerelle de paiement si l'on dispose des autorisations correspondantes. Pour une sécurité accrue, il est recommandé d'utiliser la cryptographie asymétrique.
Pour activer les notifications avec sommes de contrôle, ainsi que pour obtenir la clé cryptographique correspondante, contactez notre service de support technique.
Exigences relatives aux certificats SSL sur le site du vendeur
Si la notification sur l'état de la commande arrive via une connexion HTTPS, il est nécessaire d'authentifier le site à l'aide d'un certificat SSL émis et signé par une autorité de certification de confiance (voir le tableau ci-dessous). L'utilisation de certificats auto-signés n'est pas autorisée.
| Exigence | Description |
|---|---|
| Algorithme de signature. | Pas inférieur à SHA-256. |
| Autorités de certification prises en charge. | Ci-dessous sont présentés des exemples d'organisations qui enregistrent des certificats numériques : |
Format des URL de notification
Les demandes POST et GET sont prises en charge.
Voici un exemple de demande GET par défaut, sans paramètres supplémentaires. Les paramètres sont obtenus dans la demande.
Notification sans somme de contrôle (GET)
https://mybestmerchantreturnurl.com/callback/?mdOrder=
1234567890-098776-234-522&orderNumber=0987&operation=deposited&
callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0Notification avec somme de contrôle (GET)
https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&
orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&
operation=deposited&callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0Pour les POST-callbacks vous recevrez les mêmes paramètres dans le corps HTTP (au lieu des paramètres de demande).
Notification sans somme de contrôle (POST)
https://mybestmerchantreturnurl.com/callback/
mdOrder=
1234567890-098776-234-522&orderNumber=0987&operation=deposited&
callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0Notification avec somme de contrôle (POST)
https://mybestmerchantreturnurl.com/callback/
mdOrder=1234567890-098776-234-522&
orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0Les paramètres transmis sont présentés dans le tableau ci-dessous.
Le tableau indique uniquement les paramètres principaux. Vous pouvez également utiliser des paramètres supplémentaires, s'ils sont configurés dans la passerelle de paiement.
| Paramètre | Description |
|---|---|
mdOrder |
Numéro unique de commande, stocké dans la passerelle de paiement. |
orderNumber |
Numéro unique de commande (identifiant) dans le système du marchand. |
checksum |
Code d'authentification ou somme de contrôle, obtenue à partir d'un ensemble de paramètres. |
operation |
Type d'événement qui a déclenché la notification :
|
status |
Indicateur de réussite de l'opération, spécifiée dans le paramètre operation :
|
En-têtes personnalisés des notifications callback
Les en-têtes personnalisés des notifications callback peuvent être définis en contactant le service de support technique. Par exemple :
'http://mybestmerchantreturnurl.com/callback.php', headers={Authorization=token, Content-type=plain
/text}, params={orderNumber=349002, mdOrder=5ffb1899-cd1e-7c1e-8750-e98500093c43, operation=deposited, status=1}où {Authorization=token, Content-type=plain/text} – c'est l'en-tête configurable.
Exemples
Exemple d'URL de notification sans somme de contrôle
https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&operation=deposited&status=0Exemple d'URL de notification avec somme de contrôle
https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=0Algorithme de traitement des notifications d'état des commandes
Les sections ci-dessous présentent l'algorithme de traitement des notifications d'état des commandes en fonction du type de ces notifications.
Notification sans somme de contrôle
- La passerelle de paiement envoie la demande suivante au serveur du vendeur.
https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&operation=deposited&status=0 - Le serveur du vendeur retourne le message HTTP
200 OKà la passerelle de paiement.
Notification avec somme de contrôle
-
La passerelle de paiement envoie une demande HTTPS du type suivant au serveur du marchand, dans ce cas :
- lors de l'utilisation de la cryptographie symétrique, la somme de contrôle est formée à l'aide d'une clé commune à la passerelle de paiement et au vendeur ;
- lors de l'utilisation de la cryptographie asymétrique, la somme de contrôle est formée à l'aide d'une clé privée connue uniquement de la passerelle de paiement.
https://mybestmerchantreturnurl.com/path?amount=123456&orderNumber=10747&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&mdOrder=3ff6962a-7dcc-4283-ab50-a6d7dd3386fe&operation=deposited&status=1
L'ordre des paramètres dans la notification peut être arbitraire.
Du côté du vendeur, les paramètres
checksumetsign_aliassont supprimés de la chaîne de paramètres de notification, et la valeur du paramètrechecksum(somme de contrôle) est conservée pour vérifier l'authenticité de la notification ;Les paramètres restants et leurs valeurs sont utilisés pour créer la chaîne suivante.
nom_paramètre1;valeur_paramètre1;nom_paramètre2;valeur_paramètre2;…;nom_paramètreN;valeur_paramètreN;
Dans ce cas, les pairesnom_paramètre;valeur_paramètredoivent être triées par ordre alphabétique direct (croissant) par noms de paramètres.
Exemple de chaîne de paramètres générée :amount;123456;mdOrder;3ff6962a-7dcc-4283-ab50-a6d7dd3386fe;operation;deposited;orderNumber;10747;status;1;-
La somme de contrôle est calculée du côté du marchand, la méthode de calcul dépend de la façon dont elle est formée :
- lors de l'utilisation de la cryptographie symétrique - à l'aide de l'algorithme HMAC-SHA256 et d'une clé privée commune avec la passerelle de paiement ;
- lors de l'utilisation de la cryptographie asymétrique - à l'aide d'un algorithme de hachage qui dépend de la méthode de création de la paire de clés, et d'une clé publique qui est liée à la clé privée située du côté de la passerelle de paiement.
Dans la chaîne de somme de contrôle obtenue, toutes les lettres minuscules sont remplacées par des lettres majuscules.
La valeur obtenue est comparée avec la somme de contrôle extraite précédemment du paramètre
checksum.Si les sommes de contrôle correspondent, le serveur envoie le code HTTP
200 OKà la passerelle de paiement.
Si les sommes de contrôle correspondent, cette notification est authentique et a été envoyée par la passerelle de paiement. Sinon, il est probable qu'un attaquant tente de faire passer sa notification pour une notification de la passerelle de paiement.
Notification du statut de paiement
Pour déterminer si le paiement s'est déroulé avec succès ou non, vous devez :
- Vérifier la signature (paramètre
checksumdans la notification) ; - Vérifier deux paramètres de notification de rappel :
operationetstatus.
Si la valeur du paramètre operation diffère de approved ou deposited, alors la notification de rappel concerne le statut de paiement.
- Approved Successfully → operation = approved & status = 1 (Successful Operation)
- Approval was Declined → operation = approved & status = 0 (Failed Operation)
- Deposited Successfully → operation = deposited & status = 1 (Successful Operation)
- Deposit was Declined → operation = deposited & status = 0 (Failed Operation)
Notifications échouées
Si une réponse autre que le code HTTP 200 OK est renvoyée à la passerelle de paiement, l'envoi de notification est considéré comme échoué. Dans ce cas, la passerelle de paiement répète la notification avec un intervalle de 30 secondes jusqu'à ce que l'une des conditions suivantes soit remplie :
- la passerelle de paiement reçoit
200 OKou - trois tentatives d'information échouées consécutives se produisent.
Lorsque l'une des conditions mentionnées ci-dessus est atteinte, les tentatives d'envoi de notifications callback sur l'opération sont interrompues.
Paramètres supplémentaires des notifications de rappel
Dans les notifications de rappel vous pouvez utiliser les paramètres supplémentaires suivants, s'ils sont configurés dans la passerelle de paiement. Si vous voulez les utiliser, contactez notre service de support.
| Paramètre | Description | Type d'événement |
|---|---|---|
bindingId |
UUIID des identifiants sauvegardés créés/mis à jour (liaisons). | BINDING_CREATED, BINDING_ACTIVITY_CHANGED |
email |
Courrier électronique du client. | BINDING_CREATED |
phone |
Téléphone du client. | BINDING_CREATED |
panMasked |
PAN masqué de la carte du client. | BINDING_CREATED |
panCountryCode |
Code du pays du client. | BINDING_CREATED |
enabled |
Si la liaison est active (true/false). |
BINDING_ACTIVITY_CHANGED |
currentReverseAmountFormatted |
Somme formatée de l'opération d'annulation. | REVERSED |
currentRefundAmountFormatted |
Somme formatée de l'opération de remboursement. | REFUNDED |
operationRefundedAmountFormatted |
Somme formatée de l'opération de remboursement. | REFUNDED |
operationRefundedAmount |
Somme de remboursement en unités monétaires minimales (par exemple, en centimes). | REFUNDED |
externalRefundId |
Identifiant externe de l'opération de remboursement. | REFUNDED |
callbackCreationDate |
Date de création de la notification de rappel. Une configuration spéciale du vendeur est requise. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED, DECLINED_CARDPRESENT |
status |
Statut de l'opération: 1 - succès, 0 - échec | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
operation |
Type de callback Possible values: deposited, approved, reversed, refunded, bindingCreated, bindingActivityChanged, declinedByTimeout, declinedCardpresent
|
DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED |
finishCheckUrl |
URL pour la génération du reçu | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
sign_alias |
Nom de la clé utilisée pour la signature. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED |
checksum |
Somme de contrôle de la notification de rappel (utilisée pour les notifications de rappel avec somme de contrôle). | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED |
cardholderName |
Nom du porteur de carte. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
amount |
Montant de la commande enregistrée en unités monétaires minimales. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
paymentAmount |
Montant de la commande enregistrée en unités monétaires minimales. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
amountFormatted |
Montant formaté de la commande enregistrée. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
feeAmount |
Montant de la commission en unités minimales de devise. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
approvedAmount |
Montant préautorisé en unités monétaires minimales. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
depositedAmount |
Montant de finalisation en unités monétaires minimales. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
refundedAmount |
Montant de remboursement en unités minimales de devise. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
approvedAmountFormatted |
Montant préautorisé formaté. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
depositedAmountFormatted |
Montant de dépôt formaté. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
refundedAmountFormatted |
Montant de remboursement formaté. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
totalAmountFormatted |
Montant total formaté de la commande (montant enregistré + commission). | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
depositedTotalAmountFormatted |
Montant total formaté de finalisation (tous les montants de finalisation + tous les montants de remboursement + commission). | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
approvalCode |
Code d'autorisation de paiement obtenu du traitement. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
authCode |
Code d'autorisation | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
bankName |
Nom de la banque ayant émis la carte du client. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
currency |
Devise de la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
depositFlag |
Drapeau indiquant le type d'opération.
|
DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
eci |
Indicateur de commerce électronique. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
ip |
Adresse IP du payeur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
ipCountryCode |
Code du pays de la banque émettrice. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
maskedPan |
Numéro de carte masqué du client. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
mdOrder |
Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
mdorder |
Numéro de commande dans la passerelle de paiement. Unique dans les limites de la passerelle de paiement. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
merchantFullName |
Nom complet du vendeur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
merchantLogin |
Identifiant du vendeur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
orderDescription |
Description de la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
orderNumber |
Numéro de commande (ID) dans le système du marchand. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
threeDSType |
Type de transaction (3DS). Valeurs possibles : SSL, THREE_DS1_FULL, THREE_DS1_ATTEMPT, THREE_DS2_FULL, THREE_DS2_FRICTIONLESS, THREE_DS2_ATTEMPT, THREE_DS2_EXEMPTION_GRANTED, THREE_DS2_3RI, THREE_DS2_3RI_ATTEMPT
|
DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
date |
Date de création de la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
clientId |
Numéro client (ID) dans le système du commerçant. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT,BINDING_CREATED, BINDING_ACTIVITY_CHANGED |
actionCode |
Code du résultat d'exécution de l'opération. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
actionCodeDescription |
Description du code du résultat d'exécution de l'opération. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
paymentRefNum |
Reference Retrieval Number - identifiant de la transaction, attribué par la banque acquéreur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
paymentState |
Statut de la commande. Possible values: started, payment_approved, payment_declined, payment_void, payment_deposited, refunded, pending, partly_deposited
|
DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
paymentWay |
Méthode de paiement de la commande. Valeurs possibles supplémentaires du paramètre indiquées ici. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
processingId |
Identifiant du client dans le processing. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
refNum |
Reference Retrieval Number - identifiant de la transaction, attribué par la banque acquéreur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
refnum |
Reference Retrieval Number - identifiant de la transaction, attribué par la banque acquéreur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
terminalId |
Identifiant du terminal dans le système traitant le paiement. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
paymentSystem |
Nom du système de paiement. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
currencyName |
Code ISO à trois lettres de la devise. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
transactionAttributes |
Attributs de la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
paymentDate |
Date de paiement de la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED |
depositedDate |
Date de l'opération de finalisation pour la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED |
refundedDate |
Date de l'opération de remboursement pour la commande. | REFUNDED |
reversedDate |
Date de l'opération d'annulation de la commande. | DEPOSITED, REVERSED, REFUNDED |
declineDate |
Date d'annulation de la commande. | DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
xid |
Indicateur de commerce électronique de la transaction, défini par le vendeur. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
cavv |
Valeur de vérification d'authentification du porteur de carte. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
authValue |
Valeur de vérification d'authentification du porteur de carte. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
sessionExpiredDate |
Date et heure d'expiration de la commande. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
tokenizeCryptogram |
Cryptogramme tokenisé. | DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
creditBankName |
Nom de la banque ayant émis la carte pour le crédit (en P2P). | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
creditPanCountryCode |
Code pays de la carte du bénéficiaire (en P2P). | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
isInternationalP2P |
Si la transaction P2P est internationale. | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
recipientData |
Informations sur le bénéficiaire P2P. | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
transactionTypeIndicator
|
Informations sur le destinataire P2P. Valeurs possibles :
|
DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
operationType |
Type d'opération P2P : AFT/OCT. | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
debitBankName |
Nom de la banque ayant émis la carte pour le débit (en P2P). | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
debitPanCountryCode |
Code pays de la carte pour le débit (en P2P). | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
p2pDebitRrn |
RRN (Reference Retrieval Number) de l'opération de débit P2P. | DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT |
avsCode |
Code de réponse de vérification AVS (vérification de l'adresse et du code postal du détenteur de carte). Valeurs possibles:
|
DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT |
Exemples de code
Cryptographie symétrique
Java
package net.payrdr.test;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Comparator;
import java.util.Map;
import java.util.stream.Collector;
public class SymmetricCryptographyExample {
private static final String secretToken = "ooc7slpvc61k7sf7ma7p4hrefr";
private static final Map<String, String> callbackParams = Map.of(
"checksum", "EAF2FB72CAB99FD5067F4BA493DD84F4D79C1589FDE8ED29622F0F07215AA972",
"mdOrder", "06cf5599-3f17-7c86-bdbc-bd7d00a8b38b",
"operation", "approved",
"orderNumber", "2003",
"status", "1"
);
public static void main(String[] args) throws Exception {
String signedString = callbackParams.entrySet().stream()
.filter(entry -> !entry.getKey().equals("checksum"))
.sorted(Map.Entry.comparingByKey(Comparator.naturalOrder()))
.collect(Collector.of(
StringBuilder::new,
(accumulator, element) -> accumulator
.append(element.getKey()).append(";")
.append(element.getValue()).append(";"),
StringBuilder::append,
StringBuilder::toString
));
byte[] mac = generateHMacSHA256(secretToken.getBytes(), signedString.getBytes());
String signature = callbackParams.get("checksum");
boolean verified = verifyMac(signature, mac);
System.out.println("résultat de la vérification de la signature: " + verified);
}
private static boolean verifyMac(String signature, byte[] mac) {
return signature.equals(bytesToHex(mac));
}
public static byte[] generateHMacSHA256(byte[] hmacKeyBytes, byte[] dataBytes) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(hmacKeyBytes, "HmacSHA256");
Mac hMacSHA256 = Mac.getInstance("HmacSHA256");
hMacSHA256.init(secretKey);
return hMacSHA256.doFinal(dataBytes);
}
private static String bytesToHex(byte[] bytes) {
final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII);
byte[] hexChars = new byte[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
return new String(hexChars, StandardCharsets.UTF_8);
}
}Cryptographie asymétrique
Java
package net.payrdr.test;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.security.Signature;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Base64;
import java.util.Comparator;
import java.util.Map;
import java.util.stream.Collector;
public class AsymmetricCryptographyExample {
private static final Map<String, String> callbackParams = Map.of(
"amount", "35000099",
"sign_alias", "SHA-256 with RSA",
"checksum", "163BD9FAE437B5DCDAAC4EB5ECEE5E533DAC7BD2C8947B0719F7A8BD17C101EBDBEACDB295C10BF041E903AF3FF1E6101FF7DB9BD024C6272912D86382090D5A7614E174DC034EBBB541435C80869CEED1F1E1710B71D6EE7F52AE354505A83A1E279FBA02572DC4661C1D75ABF5A7130B70306CAFA69DABC2F6200A698198F8",
"mdOrder", "12b59da8-f68f-7c8d-12b5-9da8000826ea",
"operation", "deposited",
"status", "1");
private static final String certificate =
"MIICcTCCAdqgAwIBAgIGAWAnZt3aMA0GCSqGSIb3DQEBCwUAMHwxIDAeBgkqhkiG9w0BCQEWEWt6" +
"bnRlc3RAeWFuZGV4LnJ1MQswCQYDVQQGEwJSVTESMBAGA1UECBMJVGF0YXJzdGFuMQ4wDAYDVQQH" +
"EwVLYXphbjEMMAoGA1UEChMDUkJTMQswCQYDVQQLEwJRQTEMMAoGA1UEAxMDUkJTMB4XDTE3MTIw" +
"NTE2MDEyMFoXDTE4MTIwNTE2MDExOVowfDEgMB4GCSqGSIb3DQEJARYRa3pudGVzdEB5YW5kZXgu" +
"cnUxCzAJBgNVBAYTAlJVMRIwEAYDVQQIEwlUYXRhcnN0YW4xDjAMBgNVBAcTBUthemFuMQwwCgYD" +
"VQQKEwNSQlMxCzAJBgNVBAsTAlFBMQwwCgYDVQQDEwNSQlMwgZ8wDQYJKoZIhvcNAQEBBQADgY0A" +
"MIGJAoGBAJNgxgtWRFe8zhF6FE1C8s1t/dnnC8qzNN+uuUOQ3hBx1CHKQTEtZFTiCbNLMNkgWtJ/" +
"CRBBiFXQbyza0/Ks7FRgSD52qFYUV05zRjLLoEyzG6LAfihJwTEPddNxBNvCxqdBeVdDThG81zC0" +
"DiAhMeSwvcPCtejaDDSEYcQBLLhDAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAfRP54xwuGLW/Cg08" +
"ar6YqhdFNGq5TgXMBvQGQfRvL7W6oH67PcvzgvzN8XCL56dcpB7S8ek6NGYfPQ4K2zhgxhxpFEDH" +
"PcgU4vswnhhWbGVMoVgmTA0hEkwq86CA5ZXJkJm6f3E/J6lYoPQaKatKF24706T6iH2htG4Bkjre" +
"gUA=";
public static void main(String[] args) throws Exception {
String signedString = callbackParams.entrySet().stream()
.filter(entry -> !entry.getKey().equals("checksum") && !entry.getKey().equals("sign_alias"))
.sorted(Map.Entry.comparingByKey(Comparator.naturalOrder()))
.collect(Collector.of(
StringBuilder::new,
(accumulator, element) -> accumulator
.append(element.getKey()).append(";")
.append(element.getValue()).append(";"),
StringBuilder::append,
StringBuilder::toString
));
InputStream publicCertificate = new ByteArrayInputStream(Base64.getDecoder().decode(certificate));
String signature = callbackParams.get("checksum");
boolean verified = checkSignature(signedString.getBytes(), signature.getBytes(), publicCertificate);
System.out.println("résultat de la vérification de signature: " + verified);
}
private static boolean checkSignature(byte[] signedString, byte[] signature, InputStream publicCertificate) throws Exception {
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(publicCertificate);
Signature signatureAlgorithm = Signature.getInstance("SHA512withRSA");
signatureAlgorithm.initVerify(x509Cert.getPublicKey());
signatureAlgorithm.update(signedString);
return signatureAlgorithm.verify(decodeHex(new String(signature)));
}
private static byte[] decodeHex(String hex) {
int l = hex.length();
byte[] data = new byte[l / 2];
for (int i = 0; i < l; i += 2) {
data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
+ Character.digit(hex.charAt(i + 1), 16));
}
return data;
}
}Cryptographie symétrique
PHP
<?php
$data = 'amount;123456;mdOrder;3ff6962a-7dcc-4283-ab50-a6d7dd3386fe;operation;deposited;orderNumber;10747;status;1;';
$key = 'yourSecretToken';
$hmac = hash_hmac ( 'sha256' , $data , $key);
echo "[$hmac]
";
?>- Attribuez une valeur de chaîne à la variable
data. - Attribuez la valeur de la clé privée à la variable
key. - La fonction
hash_hmac( 'sha256', $data, $key) calcule la somme de contrôle de la chaîne transmise, à l'aide de la clé privée selon l'algorithme SHA-256. - Sauvegardez le résultat de la fonction dans la variable
hmac. - Affichez le résultat de la fonction avec la commande
echo. - Comparez cette valeur avec celle transmise dans la notification sur l'état de la commande.
Cryptographie asymétrique
PHP
<?php
// data from response
$data = 'amount;35000099;mdOrder;12b59da8-f68f-7c8d-12b5-9da8000826ea;operation;deposited;status;1;';
$checksum = '9524FD765FB1BABFB1F42E4BC6EF5A4B07BAA3F9C809098ACBB462618A9327539F975FEDB4CF6EC1556FF88BA74774342AF4F5B51BA63903BE9647C670EBD962467282955BD1D57B16935C956864526810870CD32967845EBABE1C6565C03F94FF66907CEDB54669A1C74AC1AD6E39B67FA7EF6D305A007A474F03B80FD6C965656BEAA74E09BB1189F4B32E622C903DC52843C454B7ACF76D6F76324C27767DE2FF6E7217716C19C530CA7551DB58268CC815638C30F3BCA3270E1FD44F63C14974B108E65C20638ECE2F2D752F32742FFC5077415102706FA5235D310D4948A780B08D1B75C8983F22F211DFCBF14435F262ADDA6A97BFEB6D332C3D51010B';
// your public key (e.g. SHA-512 with RSA)
// if you have a CERT, please see openssl_get_publickey()
$publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwtuGKbQ4WmfdV1gjWWys
5jyHKTWXnxX3zVa5/Cx5aKwJpOsjrXnHh6l8bOPQ6Sgj3iSeKJ9plZ3i7rPjkfmw
qUOJ1eLU5NvGkVjOgyi11aUKgEKwS5Iq5HZvXmPLzu+U22EUCTQwjBqnE/Wf0hnI
wYABDgc0fJeJJAHYHMBcJXTuxF8DmDf4DpbLrQ2bpGaCPKcX+04POS4zVLVCHF6N
6gYtM7U2QXYcTMTGsAvmIqSj1vddGwvNGeeUVoPbo6enMBbvZgjN5p6j3ItTziMb
Vba3m/u7bU1dOG2/79UpGAGR10qEFHiOqS6WpO7CuIR2tL9EznXRc7D9JZKwGfoY
/QIDAQAB
-----END PUBLIC KEY-----
EOD;
$binarySignature = hex2bin(strtolower($checksum));
$isVerify = openssl_verify($data, $binarySignature, $publicKey, OPENSSL_ALGO_SHA512);
if ($isVerify == 1) {
echo "signature ok
";
} elseif ($isVerify == 0) {
echo "bad (there's something wrong)
";
} else {
echo "error checking signature
";
}
?>