Pour toute question, nous sommes à un clic

Poser une question

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 :

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.

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.
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:

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

  1. Faire un appel getOrderStatusExtended.do;
  2. Vérifier le champ orderStatus dans la réponse : la commande est considérée comme payée seulement si la valeur orderStatus est égale à 1 ou 2.

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 :

  1. Créez et téléchargez un certificat.
  2. 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

  1. 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

  2. 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

  3. 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

  4. 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é.
    JCC installments final page

Calcul du hash et de la signature

  1. Calculez le hash SHA256 du corps de la requête de la manière suivante :

    1. 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).
    2. Calculez le hash SHA256 de cette chaîne en octets bruts.
    3. Convertissez les octets bruts en encodage base64.
  2. 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 :

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&currency=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

Commencez à travailler avec API Sandbox en créant un compte ou en vous connectant au système.

 

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:
  • backToShopUrl - ajoute un bouton sur la page de paiement, qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
  • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
  • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
  • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
  • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • paymentWay - méthode de paiement. Pour effectuer de force un paiement MOTO il faut transmettre la valeur CARD_MOTO.
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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
Facultatif

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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).

Obligatoire Nom Type Description
Conditionnel

billingCity String [0..50] Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa.
Conditionnel

billingCountry String [0..50] Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa.
Conditionnel

billingAddressLine1 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa.
Facultatif

billingAddressLine2 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2.
Facultatif

billingAddressLine3 String [0..50] Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3.
Facultatif

billingPostalCode String [0..9] Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS.
Facultatif

billingState String [0..50] État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région.
Obligatoire

payerAccount String [1..32] Numéro de compte de l'expéditeur.
Conditionnel

payerLastName String [1..64] Nom de famille de l'expéditeur. Obligatoire pour Visa.
Conditionnel

payerFirstName String [1..35] Prénom de l'expéditeur. Obligatoire pour Visa.
Facultatif

payerMiddleName String [1..35] Nom patronymique de l'expéditeur.
Facultatif

payerCombinedName String [1..99] Nom complet de l'expéditeur.
Facultatif

payerIdType String [1..8] Type du document d'identification fourni de l'expéditeur.
Valeurs possibles :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
Facultatif

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:
  • backToShopUrl - ajoute un bouton sur la page de paiement, qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
  • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
  • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
  • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
  • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • paymentWay - méthode de paiement. Pour effectuer de force un paiement MOTO il faut transmettre la valeur CARD_MOTO.
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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
Facultatif

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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).

Obligatoire Nom Type Description
Conditionnel

billingCity String [0..50] Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa.
Conditionnel

billingCountry String [0..50] Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa.
Conditionnel

billingAddressLine1 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa.
Facultatif

billingAddressLine2 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2.
Facultatif

billingAddressLine3 String [0..50] Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3.
Facultatif

billingPostalCode String [0..9] Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS.
Facultatif

billingState String [0..50] État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région.
Obligatoire

payerAccount String [1..32] Numéro de compte de l'expéditeur.
Conditionnel

payerLastName String [1..64] Nom de famille de l'expéditeur. Obligatoire pour Visa.
Conditionnel

payerFirstName String [1..35] Prénom de l'expéditeur. Obligatoire pour Visa.
Facultatif

payerMiddleName String [1..35] Nom patronymique de l'expéditeur.
Facultatif

payerCombinedName String [1..99] Nom complet de l'expéditeur.
Facultatif

payerIdType String [1..8] Type du document d'identification fourni de l'expéditeur.
Valeurs possibles :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
Facultatif

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=en

Exemple 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 :
  • true- la création de liaison après l'exécution du paiement est désactivée (la liaison est l'identifiant du client transmis dans la demande d'enregistrement de commande, qui après la demande de paiement sera supprimé des détails de la commande) ;
  • false – en cas de paiement réussi, une liaison peut être créée (sous réserve du respect des conditions nécessaires). C'est la valeur par défaut.
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 :
  • backToShopUrl - ajoute un bouton sur la page de paiement qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
  • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
  • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
  • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
  • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
Facultatif

info String En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
  • Votre paiement est traité, redirection en cours...
  • Opération refusée. Vérifiez les données saisies, la suffisance des fonds sur la carte et répétez l'opération. Redirection en cours...
  • Désolé, le paiement ne peut pas être effectué. Redirection en cours...
  • Opération refusée. Contactez le magasin. Redirection en cours...
  • Opération refusée. Contactez la banque qui a émis la carte. Redirection en cours...
  • Opération impossible. L'authentification du porteur de carte s'est terminée sans succès. Redirection en cours...
  • Pas de connexion avec la banque. Répétez plus tard. Redirection en cours...
  • Délai d'attente de saisie des données expiré. Redirection en cours...
  • Aucune réponse reçue de la banque. Répétez plus tard. Redirection en cours...
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-dc966ebf08c6

Exemples 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 :
  • true- la création de liaison après l'exécution du paiement est désactivée (la liaison est l'identifiant du client transmis dans la demande d'enregistrement de commande, qui après la demande de paiement sera supprimé des détails de la commande) ;
  • false – en cas de paiement réussi, une liaison peut être créée (sous réserve du respect des conditions nécessaires). C'est la valeur par défaut.
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 :
  • backToShopUrl - ajoute un bouton sur la page de paiement qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
  • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
  • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
  • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
  • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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 :
  • valeur 0 - indique le succès du traitement de la demande ;
  • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre errorMesage.
Peut être absent si le résultat n'a pas causé d'erreur.
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.
  • Votre paiement est traité, redirection en cours...
  • Opération refusée. Vérifiez les données saisies, la suffisance des fonds sur la carte et répétez l'opération. Redirection en cours...
  • Désolé, le paiement ne peut pas être effectué. Redirection en cours...
  • Opération refusée. Contactez le magasin. Redirection en cours...
  • Opération refusée. Contactez la banque qui a émis la carte. Redirection en cours...
  • Opération impossible. L'authentification du porteur de carte s'est terminée sans succès. Redirection en cours...
  • Pas de connexion avec la banque. Répétez plus tard. Redirection en cours...
  • Délai d'attente de saisie des données expiré. Redirection en cours...
  • Aucune réponse reçue de la banque. Répétez plus tard. Redirection en cours...

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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
Facultatif

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 :
  • true - la création de liaison après effectuation du paiement est désactivée (liaison - c'est l'identifiant du client, transmis dans la demande d'enregistrement de commande, qui après la demande instantPayment.do sera supprimé des détails de la commande) ;
  • false - en cas de paiement réussi, une liaison peut être créée (sous réserve du respect des conditions nécessaires). C'est la valeur par défaut.
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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
Facultatif

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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  • la transmission cvc n'est pas prévue pour tous les paiements tokenisés ;
  • la transmission cvc n'est pas prévue pour les paiements MIT ;
  • la transmission cvc est obligatoire par défaut pour tous les autres types de paiements ; mais si l'autorisation Peut effectuer le paiement sans confirmation CVC est sélectionnée pour le marchand, alors dans ce cas la transmission cvc devient facultative.
    Seuls les chiffres sont autorisés.
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 :
  • backToShopUrl - ajoute un bouton sur la page de paiement qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
  • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
  • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
  • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
  • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

Ci-dessous sont présentés les paramètres du bloc 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 :
  • valeur 0 - indique le succès du traitement ;
  • autre valeur numérique positive - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre error.
Peut être absent si le résultat n'a pas causé d'erreur.
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.
  • Votre paiement est traité, redirection en cours...
  • Opération refusée. Vérifiez les données saisies, la suffisance des fonds sur la carte et répétez l'opération. Redirection en cours...
  • Désolé, le paiement ne peut pas être effectué. Redirection en cours...
  • Opération refusée. Contactez le magasin. Redirection en cours...
  • Opération refusée. Contactez la banque qui a émis la carte. Redirection en cours...
  • Opération impossible. L'authentification du porteur de carte s'est terminée sans succès. Redirection en cours...
  • Pas de connexion avec la banque. Répétez plus tard. Redirection en cours...
  • Délai d'attente de saisie des données expiré. Redirection en cours...
  • Aucune réponse reçue de la banque. Répétez plus tard. Redirection en cours...
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 :
  • valeur 0 - indique le succès du traitement ;
  • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre ErrorMesage.
Peut être absent si le résultat n'a pas causé d'erreurs.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 1 - Montant pré-autorisé retenu (pour les paiements en deux étapes) ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 4 - opération de remboursement effectuée sur la transaction ;
  • 5 - autorisation initiée via l'ACS de la banque émettrice ;
  • 6 - autorisation rejetée ;
  • 7 - attente de paiement des commandes ;
  • 8 - finalisation intermédiaire pour finalisation partielle multiple.
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 :
  • est copié de la transaction originale
  • est transmis dans le champ Original Network Reference Number
  • permet au système de paiement de lier la nouvelle opération à l'opération initiale

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.com

Exemple 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:
  • backToShopUrl - ajoute un bouton sur la page de paiement, qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
  • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
  • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
  • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
  • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
  • paymentWay - méthode de paiement. Pour effectuer de force un paiement MOTO il faut transmettre la valeur CARD_MOTO.
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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  • la transmission cvc n'est pas prévue pour tous les paiements tokenisés ;
  • la transmission cvc n'est pas prévue pour les paiements MIT ;
  • la transmission cvc est obligatoire par défaut pour tous les autres types de paiements ; mais si l'autorisation Peut effectuer le paiement sans confirmation CVC est sélectionnée pour le marchand, alors dans ce cas la transmission cvc devient facultative.
    Seuls les chiffres sont autorisé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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
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=en

Exemple 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 :

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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  1. obtenir PKPaymentToken Object, contenant paymentData d'Apple Pay ;
  2. extraire la valeur paymentData et l'encoder en Base64 ;
  3. inclure la valeur encodée de la propriété paymentData comme valeur du paramètre paymentToken dans la demande de paiement, que le vendeur adressera à la passerelle de paiement.
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 :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du 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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
Facultatif

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 :
  • 0 - commande enregistrée mais non payée ;
  • 1 - commande seulement autorisée et pas encore finalisée (pour les paiements en deux étapes) ;
  • 2 - commande autorisée et finalisée ;
  • 3 - autorisation annulée ;
  • 4 - une opération de remboursement a été effectuée sur la transaction ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
  • 7 - attente de paiement de la commande ;
  • 8 - finalisation intermédiaire pour finalisation partielle multiple.
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 :
  • CREATED - commande créée (mais non payée) ;
  • APPROVED - commande approuvée (les fonds sur le compte de l'acheteur sont bloqués) ;
  • DEPOSITED - commande terminée (l'argent est débité du compte de l'acheteur) ;
  • DECLINED - commande rejetée ;
  • REVERSED - commande rejetée ;
  • REFUNDED - remboursement des fonds.
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.

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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  1. Obtenez PKPaymentToken Object d'Apple Pay (Payment Token Format Reference) avec les données de paiement chiffrées ;
  2. Déchiffrez (ECC/RSA) paymentData pour obtenir la représentation textuelle de l'objet : {"applicationPrimaryAccountNumber":"4111111111111111","deviceManufacturerIdentifier":"050110030273","currencyCode":"840","applicationExpirationDate" :"220430","paymentData":{"onlinePaymentCryptogram":"AM32yL0vuOOmAAGG0iQUAoABFA=="}," paymentDataType":"3DSecure","transactionAmount":1010} ;
  3. Encodez en BASE64 le texte en clair de l'objet paymentData et envoyez-le comme paymentToken.
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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 :
  • 0 - commande enregistrée mais non payée ;
  • 1 - commande seulement autorisée et pas encore finalisée (pour les paiements en deux étapes) ;
  • 2 - commande autorisée et finalisée ;
  • 3 - autorisation annulée ;
  • 4 - une opération de remboursement a été effectuée sur la transaction ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
  • 7 - attente de paiement de la commande ;
  • 8 - finalisation intermédiaire pour finalisation partielle multiple.

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

errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
La langue de description est définie dans le paramètre language de la requête.
Facultatif

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 :
  • 0 - commande enregistrée mais non payée ;
  • 1 - Montant pré-autorisé mis en attente (pour les paiements en deux étapes) ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 4 - opération de remboursement effectuée sur la transaction ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation rejetée.
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 :
  • CREATED - commande créée (mais non payée) ;
  • APPROVED - commande approuvée (les fonds sur le compte de l'acheteur sont bloqués) ;
  • DEPOSITED - commande terminée (l'argent est débité du compte de l'acheteur) ;
  • DECLINED - commande rejetée ;
  • REVERSED - commande rejetée ;
  • REFUNDED - remboursement des fonds.
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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

Ci-dessous sont présentés les paramètres du bloc 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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
Facultatif

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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  1. Obtenez PKPaymentToken Object de Google Pay (Payment Token Format Reference) avec les données de paiement chiffrées ;
  2. Déchiffrez (ECC/RSA) paymentData pour obtenir la représentation textuelle de l'objet : {"paymentMethod": "CARD","paymentMethodDetails": {"pan": "5555555555555599","expirationMonth": 12,"expirationYear": 2024},"gatewayMerchantId": "GPay-decrypted","messageId": "AH2EjtcHYs1Ye9Baqr4FAM735VNThPiP","messageExpiration": "1577862000000"} ;
  3. Encodez en BASE64 le texte clair de l'objet paymentData et envoyez-le comme paymentToken.
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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
Facultatif

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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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.
  • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
  • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
  • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
  • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
  • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
  • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
    À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).

Obligatoire Nom Type Description
Conditionnel

billingCity String [0..50] Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa.
Conditionnel

billingCountry String [0..50] Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa.
Conditionnel

billingAddressLine1 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa.
Facultatif

billingAddressLine2 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2.
Facultatif

billingAddressLine3 String [0..50] Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3.
Facultatif

billingPostalCode String [0..9] Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS.
Facultatif

billingState String [0..50] État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région.
Obligatoire

payerAccount String [1..32] Numéro de compte de l'expéditeur.
Conditionnel

payerLastName String [1..64] Nom de famille de l'expéditeur. Obligatoire pour Visa.
Conditionnel

payerFirstName String [1..35] Prénom de l'expéditeur. Obligatoire pour Visa.
Facultatif

payerMiddleName String [1..35] Nom patronymique de l'expéditeur.
Facultatif

payerCombinedName String [1..99] Nom complet de l'expéditeur.
Facultatif

payerIdType String [1..8] Type du document d'identification fourni de l'expéditeur.
Valeurs possibles :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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 :
  • Cette commande ne peut être payée qu'à l'aide de la liaison ;
  • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
Facultatif

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 :
  • MDES;
  • VTS;
  • APPLE;
  • GOOGLE;
  • SAMSUNG.
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 :
  • true - paiement en deux étapes activé ;
  • false - paiement en une étape activé (l'argent est débité immédiatement).
Si le paramètre est absent, un paiement en une étape est effectué.
Condition

cvc String [3] La transmission du paramètre est déterminée par le type de paiement :
  • la transmission cvc n'est pas prévue pour tous les paiements tokenisés ;
  • la transmission cvc n'est pas prévue pour les paiements MIT ;
  • la transmission cvc est obligatoire par défaut pour tous les autres types de paiements ; mais si l'autorisation Peut effectuer le paiement sans confirmation CVC est sélectionnée pour le marchand, alors dans ce cas la transmission cvc devient facultative.
    Seuls les chiffres sont autorisés.
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.
  • VERIFY - si cette valeur est transmise dans la demande de finalisation de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la demande, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Après un enregistrement réussi, la commande passe immédiatement au statut REVERSED (annulée). Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lisez plus en détail ici.
  • FORCE_TDS - Conduite forcée du paiement en utilisant 3-D Secure. Si la carte ne prend pas en charge 3-D Secure, la transaction n'aboutira pas.
  • FORCE_SSL - Conduite forcée du paiement via SSL (sans utiliser 3-D Secure).
  • FORCE_FULL_TDS - Après avoir effectué l'authentification à l'aide de 3-D Secure, le statut PaRes doit être seulement Y, ce qui garantit une authentification réussie de l'utilisateur. Dans le cas contraire, la transaction n'aboutira pas.
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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 :
  • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
  • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.
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.
  • ECI=01 ou ECI=06 - le marchand prend en charge 3-D Secure, la carte de paiement ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
  • ECI=02 ou ECI=05 - le marchand et la carte de paiement prennent en charge 3-D Secure ;
  • ECI=07 - le marchand ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.

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 :
  • IDTP1 - Passeport
  • IDTP2 - Permis de conduire
  • IDTP3 - Carte sociale
  • IDTP4 - Carte d'identité de citoyen
  • IDTP5 - Certificat de conduite d'affaires
  • IDTP6 - Certificat de réfugié
  • IDTP7 - Permis de séjour
  • IDTP8 - Passeport étranger
  • IDTP9 - Passeport officiel
  • IDTP10 - Passeport temporaire
  • IDTP11 - Passeport de marin
Facultatif

payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
Conditionnel

payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

Description des paramètres de l'objet shippingPayerData :

Caractère obligatoire Nom Type Description
Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
Facultatif shippingCountry String [1..50] Pays du client
Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
Valeurs possibles :
  • 01 - livraison à l'adresse de paiement du porteur de carte.
  • 02 - livraison à une autre adresse, vérifiée par le Marchand.
  • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
  • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
  • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
  • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
  • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
Valeurs possibles :
  • 01 - distribution numérique
  • 02 - livraison le jour même
  • 03 - livraison le jour suivant
  • 04 - livraison dans les 2 jours après le paiement et plus tard.
Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

Description des paramètres de l'objet preOrderPayerData :

Obligatoire Nom Type Description
Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
Valeurs possibles :
  • 01 - livraison possible ;
  • 02 - livraison future
Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
Valeurs possibles :
  • 01 - commande passée pour la première fois ;
  • 02 - commande répétée

Description des paramètres de l'objet orderPayerData.

Obligatoire Nom Type Description
Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.
Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
  • +35799988877 ;
  • 0035799988877 ;
  • 35799988877.

Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

Ci-dessous sont présentés les paramètres du bloc 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 :
  • true - demande traitée avec succès ;
  • false - demande échouée.

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 :
  • la valeur 0 - indique le succès du traitement ;
  • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre ErrorMesage.
Peut être absent si le résultat n'a pas provoqué d'erreur.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 1 - Montant pré-autorisé bloqué (pour les paiements en deux étapes) ;
  • 2 - autorisation complète du montant de la commande effectuée ;
  • 3 - autorisation annulée ;
  • 4 - opération de remboursement effectuée sur la transaction ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée.
  • 7 - attente de paiement de la commande ;
  • 8 - finalisation intermédiaire pour finalisation partielle multiple.
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 :
  • est copié de la transaction originale
  • est transmis dans le champ Original Network Reference Number
  • permet au système de paiement de lier la nouvelle opération à l'originale
Ce paramètre est présent dans la réponse uniquement si la requête getP2PStatus version 7 ou supérieure est utilisée.
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 :
  • CREATED - commande créée (mais non payée) ;
  • APPROVED - commande approuvée (les fonds sur le compte de l'acheteur sont bloqués) ;
  • DEPOSITED - commande terminée (l'argent est débité du compte de l'acheteur) ;
  • DECLINED - commande rejetée ;
  • REVERSED - commande rejetée ;
  • REFUNDED - remboursement des fonds.
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 :

  1. Faire l'appel getOrderStatusExtended.do;
  2. Vérifier le champ orderStatus dans la réponse : la commande est considérée comme payée, seulement si la valeur orderStatus est égale à 1 ou 2.

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
  • authDateTime
  • terminalId
  • authRefNum
3
  • paymentAmountInfo->approvedAmount, depositedAmount, paymentState, refundedAmount
  • bankInfo->bankCountryCode, bankCountryName, bankName
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
  • refundedDate
  • reversedDate
13 payerData->email,phone,postAddress
14 transactionAttributes
15
  • prepaymentMdOrder
  • partpaymentMdOrders
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
  • tii
  • usedPsdIndicatorValue
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 :
  • valeur 0 - indique le succès du traitement ;
  • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre errorMesage.
Peut être absent si le résultat n'a pas causé d'erreurs.
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 :
  • 0 - commande enregistrée mais non payée ;
  • 1 - commande seulement autorisée et pas encore finalisée (pour les paiements en deux étapes) ;
  • 2 - commande autorisée et finalisée ;
  • 3 - autorisation annulée ;
  • 4 - une opération de remboursement a été effectuée sur la transaction ;
  • 5 - autorisation initiée via ACS de la banque émettrice ;
  • 6 - autorisation refusée ;
  • 7 - attente de paiement de la commande ;
  • 8 - finalisation intermédiaire pour finalisation partielle multiple.
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 :
  • A – le code postal et l'adresse correspondent.
  • B – l'adresse correspond, le code postal ne correspond pas.
  • C - le code postal correspond, l'adresse ne correspond pas.
  • D - le code postal et l'adresse ne correspondent pas.
  • E - vérification des données demandée, mais le résultat est non réussi.
  • F - format de demande AVS/AVV incorrect pour la vérification.
06+ Optionnel

chargeback Boolean Est-ce que les fonds ont été retournés de force à l'acheteur par la banque. Valeurs possibles :
  • true - les fonds ont été retournés ;
  • false - les fonds n'ont pas été retournés.
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 :
  • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transaction à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
  • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.
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 :
  • REQUESTED - Le marchand a demandé une autorisation partielle, mais l'autorisation n'a pas encore été effectuée.
  • PARTIAL_AMOUNT - Le marchand a demandé une autorisation partielle. L'autorisation partielle a été effectuée avec succès en cas d'insuffisance du solde du client.
  • FULL_AMOUNT - Le marchand a demandé une autorisation partielle, mais le solde du client était suffisant, donc l'exécution de l'autorisation partielle n'était pas nécessaire et le montant total a été débité.

Valeurs du paramètre paymentWay :

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 :
  • VISA ;
  • MASTERCARD ;
  • AMEX ;
  • JCB ;
  • CUP ;
    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.
    • ECI=01 ou ECI=06 - le marchand prend en charge 3-D Secure, la carte de paiement ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
    • ECI=02 ou ECI=05 - le marchand et la carte de paiement prennent en charge 3-D Secure ;
    • ECI=07 - le marchand ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
    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 :
    • 0 - Authentification SSL
    • 1 - Authentification 3DS 1
    • 2 - Tentative d'authentification 3DS 1
    • 3 - Authentification forte du client (SCA) avec 3DS 2
    • 4 - Authentification basée sur les risques (RBA) avec 3DS 2
    • 5 - Tentative d'authentification 3DS 2
    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 :
    • 0 - Authentification SSL
    • 3 - Authentification forte du client (SCA) avec 3DS 2
    • 4 - Authentification basée sur les risques (RBA) avec 3DS 2
    • 5 - Tentative d'authentification 3DS 2
    • 7 - Authentification 3RI avec 3DS 2
    • 8 - Tentative d'authentification 3RI avec 3DS 2
    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 :
    • Cette commande ne peut être payée qu'à l'aide de la liaison ;
    • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
    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 :
    • CREATED - commande créée (mais non payée) ;
    • APPROVED - commande approuvée (les fonds sur le compte de l'acheteur sont bloqués) ;
    • DEPOSITED - commande terminée (l'argent est débité du compte de l'acheteur) ;
    • DECLINED - commande rejetée ;
    • REVERSED - commande rejetée ;
    • REFUNDED - remboursement des fonds.
    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 :
    • +35799988877 ;
    • 0035799988877 ;
    • 35799988877.

    Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du 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=en

    Exemple 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 orderId ou orderNumber+merchantLogin.

    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 orderId ou orderNumber+merchantLogin.

    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 orderId ou orderNumber+merchantLogin.

    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:
    • backToShopUrl - ajoute un bouton sur la page de paiement, qui renverra le porteur de carte vers l'URL transmise dans ce paramètre
    • backToShopName - configure l'étiquette textuelle par défaut du bouton Retourner au magasin, si elle est utilisée avec backToShopUrl
    • installments - nombre maximum d'autorisations autorisées pour les paiements échelonnés. Requis pour créer une liaison d'échelonnement
    • totalInstallmentAmount - montant total de tous les paiements échelonnés. La valeur est nécessaire pour sauvegarder les données de paiement pour effectuer l'échelonnement
    • recurringFrequency - nombre minimum de jours entre les autorisations. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
    • recurringExpiry - date après laquelle les autorisations ne sont pas autorisées, au format AAAAMMJJ. Requis pour créer une liaison récurrente, recommandé pour créer une liaison d'échelonnement (si 3DS2 est utilisé, le paramètre est obligatoire).
    • paymentWay - méthode de paiement. Pour effectuer de force un paiement MOTO il faut transmettre la valeur CARD_MOTO.

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

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.

    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=en

    Exemple 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 orderId ou orderNumber+merchantLogin.

    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 orderId ou orderNumber+merchantLogin.

    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 orderId ou orderNumber+merchantLogin.

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

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.

    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=en

    Exemple 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 orderId ou orderNumber+merchantLogin.

    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 orderId ou orderNumber+merchantLogin.

    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 orderId ou orderNumber+merchantLogin.

    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 :
    • 1 - prépaiement complet ;
    • 2 - prépaiement partiel ;
    • 3 - acompte ;
    • 4 - paiement complet ;
    • 5 - paiement partiel avec paiement ultérieur à crédit ;
    • 6 - sans paiement avec paiement ultérieur à crédit ;
    • 7 - paiement avec paiement ultérieur à crédit.
    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 :
    • 1 - agent de paiement bancaire ;
    • 2 - sous-agent de paiement bancaire ;
    • 3 - agent de paiement ;
    • 4 - sous-agent de paiement ;
    • 5 - mandataire ;
    • 6 - commissionnaire ;
    • 7 - autre agent.
    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 :
    • valeur 0 - indique le succès du traitement de la demande ;
    • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre errorMesage.
    Peut être absent si le résultat n'a pas causé d'erreur.
    Facultatif

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.

    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=en

    Exemple 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 :
    • Cette commande ne peut être payée qu'à l'aide de la liaison ;
    • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
    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 :
    • timestamp/uuid/PAN/CVV/EXPDATE
    • timestamp/uuid/PAN//EXPDATE
    • timestamp/uuid//CVV///bindingId
    • timestamp/uuid/////bindingId

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

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.
    Facultatif

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

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

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.

    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=en

    Exemple 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 :
    • Cette commande ne peut être payée qu'à l'aide de la liaison ;
    • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
    Facultatif

    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 :
    • la transmission cvc n'est pas prévue pour tous les paiements tokenisés ;
    • la transmission cvc n'est pas prévue pour les paiements MIT ;
    • la transmission cvc est obligatoire par défaut pour tous les autres types de paiements ; mais si l'autorisation Peut effectuer le paiement sans confirmation CVC est sélectionnée pour le marchand, alors dans ce cas la transmission cvc devient facultative.
      Seuls les chiffres sont autorisés.
    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 :
    • LVP – transaction de type Low Value Payments. La transaction peut être classée comme transactions à faible niveau de risque sur la base du montant de la transaction, du nombre de transactions du client par jour ou du montant quotidien total des paiements du client.
    • TRA – transaction de type Transaction Risk Analysis, c'est-à-dire transaction ayant passé avec succès la vérification antifraude.

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

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

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.
    Facultatif

    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.
    • Votre paiement est traité, redirection en cours...
    • Opération refusée. Vérifiez les données saisies, la suffisance des fonds sur la carte et répétez l'opération. Redirection en cours...
    • Désolé, le paiement ne peut pas être effectué. Redirection en cours...
    • Opération refusée. Contactez le magasin. Redirection en cours...
    • Opération refusée. Contactez la banque qui a émis la carte. Redirection en cours...
    • Opération impossible. L'authentification du porteur de carte s'est terminée sans succès. Redirection en cours...
    • Pas de connexion avec la banque. Répétez plus tard. Redirection en cours...
    • Délai d'attente de saisie des données expiré. Redirection en cours...
    • Aucune réponse reçue de la banque. Répétez plus tard. Redirection en cours...
    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=en

    Exemple 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 :
    • Cette commande ne peut être payée qu'à l'aide de la liaison ;
    • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
    Facultatif

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

    errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
    La langue de description est définie dans le paramètre language de la requête.
    Facultatif

    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 :
    • Cette commande ne peut être payée qu'à l'aide de la liaison ;
    • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
    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 :
    • VISA ;
    • MASTERCARD ;
    • AMEX ;
    • JCB ;
    • CUP ;

      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=C

      Exemple 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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
      Facultatif

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

      errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
      La langue de description est définie dans le paramètre language de la requête.
      Facultatif

      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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
      Facultatif

      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=4000001111111118

      Exemple 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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.

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

      errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
      La langue de description est définie dans le paramètre language de la requête.

      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-1b7cfeb093dc

      Exemple 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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.

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

      errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
      La langue de description est définie dans le paramètre language de la requête.

      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-1b7cfeb093dc

      Exemple 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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
      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 :
      • valeur 0 - indique le succès du traitement de la demande ;
      • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre errorMesage.
      Peut être absent si le résultat n'a pas causé d'erreur.
      Facultatif

      errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
      La langue de description est définie dans le paramètre language de la requête.

      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=en

      Exemple 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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
      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 :
      • true - paiement en deux étapes activé ;
      • false - paiement en une étape activé (l'argent est débité immédiatement).
      Si le paramètre est absent, un paiement en une étape est effectué.
      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.
      • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
      • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
      • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
      • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
      • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
      • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
      • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
        À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
      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 :
      • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
      • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

      Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).

      Obligatoire Nom Type Description
      Conditionnel

      billingCity String [0..50] Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa.
      Conditionnel

      billingCountry String [0..50] Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa.
      Conditionnel

      billingAddressLine1 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa.
      Facultatif

      billingAddressLine2 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2.
      Facultatif

      billingAddressLine3 String [0..50] Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3.
      Facultatif

      billingPostalCode String [0..9] Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS.
      Facultatif

      billingState String [0..50] État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région.
      Obligatoire

      payerAccount String [1..32] Numéro de compte de l'expéditeur.
      Conditionnel

      payerLastName String [1..64] Nom de famille de l'expéditeur. Obligatoire pour Visa.
      Conditionnel

      payerFirstName String [1..35] Prénom de l'expéditeur. Obligatoire pour Visa.
      Facultatif

      payerMiddleName String [1..35] Nom patronymique de l'expéditeur.
      Facultatif

      payerCombinedName String [1..99] Nom complet de l'expéditeur.
      Facultatif

      payerIdType String [1..8] Type du document d'identification fourni de l'expéditeur.
      Valeurs possibles :
      • IDTP1 - Passeport
      • IDTP2 - Permis de conduire
      • IDTP3 - Carte sociale
      • IDTP4 - Carte d'identité de citoyen
      • IDTP5 - Certificat de conduite d'affaires
      • IDTP6 - Certificat de réfugié
      • IDTP7 - Permis de séjour
      • IDTP8 - Passeport étranger
      • IDTP9 - Passeport officiel
      • IDTP10 - Passeport temporaire
      • IDTP11 - Passeport de marin
      Facultatif

      payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
      Conditionnel

      payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

      Description des paramètres de l'objet shippingPayerData :

      Caractère obligatoire Nom Type Description
      Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
      Facultatif shippingCountry String [1..50] Pays du client
      Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
      Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
      Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
      Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
      Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
      Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
      Valeurs possibles :
      • 01 - livraison à l'adresse de paiement du porteur de carte.
      • 02 - livraison à une autre adresse, vérifiée par le Marchand.
      • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
      • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
      • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
      • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
      • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
      Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
      Valeurs possibles :
      • 01 - distribution numérique
      • 02 - livraison le jour même
      • 03 - livraison le jour suivant
      • 04 - livraison dans les 2 jours après le paiement et plus tard.
      Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

      Description des paramètres de l'objet preOrderPayerData :

      Obligatoire Nom Type Description
      Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
      Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
      Valeurs possibles :
      • 01 - livraison possible ;
      • 02 - livraison future
      Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
      Valeurs possibles :
      • 01 - commande passée pour la première fois ;
      • 02 - commande répétée

      Description des paramètres de l'objet orderPayerData.

      Obligatoire Nom Type Description
      Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
      • +35799988877 ;
      • 0035799988877 ;
      • 35799988877.
      Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
      • +35799988877 ;
      • 0035799988877 ;
      • 35799988877.
      Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
      • +35799988877 ;
      • 0035799988877 ;
      • 35799988877.

      Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

      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 :
      • true - demande traitée avec succès ;
      • false - demande échouée.

      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 :
      • Cette commande ne peut être payée qu'à l'aide de la liaison ;
      • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.
      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 :
      • true - paiement en deux étapes activé ;
      • false - paiement en une étape activé (l'argent est débité immédiatement).
      Si le paramètre est absent, un paiement en une étape est effectué.
      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.
      • VERIFY - si cette valeur est transmise dans la requête de création de commande, le propriétaire de la carte sera vérifié, cependant aucun débit de fonds n'aura lieu, donc dans ce cas le paramètre amount peut avoir la valeur 0. La vérification permet de s'assurer que la carte est entre les mains du propriétaire, et par la suite de débiter des fonds de cette carte, sans recourir à la vérification des données d'authentification (CVC, 3D-Secure) lors des paiements ultérieurs. Même si le montant du paiement est transmis dans la requête, il ne sera pas débité du compte client lors de la transmission de la valeur VERIFY. Cette valeur peut également être utilisée pour créer une liaison — dans ce cas le paramètre clientId doit également être transmis. Lire plus en détail ici.
      • FORCE_TDS - Traitement forcé du paiement en utilisant 3-D Secure. Si la carte ne supporte pas 3-D Secure, la transaction n'aboutira pas.
      • FORCE_SSL - Traitement forcé du paiement via SSL (sans utilisation de 3-D Secure).
      • FORCE_FULL_TDS - Après l'authentification avec 3-D Secure le statut PaRes doit être seulement Y, ce qui garantit l'authentification réussie de l'utilisateur. Sinon la transaction n'aboutira pas.
      • FORCE_CREATE_BINDING - la transmission de cette valeur dans la requête de création de commande crée forcément une liaison. Cette fonctionnalité doit être activée au niveau du vendeur dans la passerelle. Cette valeur ne peut pas être transmise dans une requête avec un bindingId existant ou bindingNotNeeded = true (causera une erreur de validation). Quand cette fonction est transmise, le paramètre clientId doit également être transmis. Si dans le bloc features les deux valeurs FORCE_CREATE_BINDING et VERIFY sont transmises, alors la commande sera créée SEULEMENT pour créer une liaison (sans paiement).
      • PARTIAL_AUTHORIZATION - l'autorisation partielle est disponible pour la commande. Voir plus en détail ici.
      • FORCE_PAYMENT_WAY - traitement forcé du paiement par le moyen de paiement spécifié dans jsonParams dans le paramètre paymentWay. Pour effectuer de tels paiements le marchand doit avoir les autorisations correspondantes.
        À l'heure actuelle utilisé pour le traitement forcé du paiement MOTO. Pour cela il est nécessaire de transmettre également dans jsonParams le paramètre paymentWay avec la valeur CARD_MOTO.
      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 :
      • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
      • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

      Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).

      Obligatoire Nom Type Description
      Conditionnel

      billingCity String [0..50] Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa.
      Conditionnel

      billingCountry String [0..50] Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa.
      Conditionnel

      billingAddressLine1 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa.
      Facultatif

      billingAddressLine2 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2.
      Facultatif

      billingAddressLine3 String [0..50] Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3.
      Facultatif

      billingPostalCode String [0..9] Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS.
      Facultatif

      billingState String [0..50] État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région.
      Obligatoire

      payerAccount String [1..32] Numéro de compte de l'expéditeur.
      Conditionnel

      payerLastName String [1..64] Nom de famille de l'expéditeur. Obligatoire pour Visa.
      Conditionnel

      payerFirstName String [1..35] Prénom de l'expéditeur. Obligatoire pour Visa.
      Facultatif

      payerMiddleName String [1..35] Nom patronymique de l'expéditeur.
      Facultatif

      payerCombinedName String [1..99] Nom complet de l'expéditeur.
      Facultatif

      payerIdType String [1..8] Type du document d'identification fourni de l'expéditeur.
      Valeurs possibles :
      • IDTP1 - Passeport
      • IDTP2 - Permis de conduire
      • IDTP3 - Carte sociale
      • IDTP4 - Carte d'identité de citoyen
      • IDTP5 - Certificat de conduite d'affaires
      • IDTP6 - Certificat de réfugié
      • IDTP7 - Permis de séjour
      • IDTP8 - Passeport étranger
      • IDTP9 - Passeport officiel
      • IDTP10 - Passeport temporaire
      • IDTP11 - Passeport de marin
      Facultatif

      payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
      Conditionnel

      payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

      Description des paramètres de l'objet shippingPayerData :

      Caractère obligatoire Nom Type Description
      Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
      Facultatif shippingCountry String [1..50] Pays du client
      Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
      Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
      Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
      Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
      Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
      Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
      Valeurs possibles :
      • 01 - livraison à l'adresse de paiement du porteur de carte.
      • 02 - livraison à une autre adresse, vérifiée par le Marchand.
      • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
      • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
      • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
      • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
      • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
      Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
      Valeurs possibles :
      • 01 - distribution numérique
      • 02 - livraison le jour même
      • 03 - livraison le jour suivant
      • 04 - livraison dans les 2 jours après le paiement et plus tard.
      Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

      Description des paramètres de l'objet preOrderPayerData :

      Obligatoire Nom Type Description
      Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
      Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
      Valeurs possibles :
      • 01 - livraison possible ;
      • 02 - livraison future
      Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
      Valeurs possibles :
      • 01 - commande passée pour la première fois ;
      • 02 - commande répétée

      Description des paramètres de l'objet orderPayerData.

      Obligatoire Nom Type Description
      Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
      • +35799988877 ;
      • 0035799988877 ;
      • 35799988877.
      Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
      • +35799988877 ;
      • 0035799988877 ;
      • 35799988877.
      Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
      • +35799988877 ;
      • 0035799988877 ;
      • 35799988877.

      Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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

      errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
      La langue de description est définie dans le paramètre language de la requête.
      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 :
      • valeur 0 - indique le succès du traitement de la demande ;
      • autre valeur numérique (1-99) - indique une erreur, pour obtenir des informations plus détaillées sur laquelle il est nécessaire de vérifier le paramètre errorMesage.
      Peut être absent si le résultat n'a pas causé d'erreur.
      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 :
      • 0 - commande enregistrée mais non payée ;
      • 1 - commande seulement autorisée et pas encore finalisée (pour les paiements en deux étapes) ;
      • 2 - commande autorisée et finalisée ;
      • 3 - autorisation annulée ;
      • 4 - une opération de remboursement a été effectuée sur la transaction ;
      • 5 - autorisation initiée via ACS de la banque émettrice ;
      • 6 - autorisation refusée ;
      • 7 - attente de paiement de la commande ;
      • 8 - finalisation intermédiaire pour finalisation partielle multiple.
      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 :
      • VISA ;
      • MASTERCARD ;
      • AMEX ;
      • JCB ;
      • CUP ;

        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 :
        • CREATED - commande créée (mais non payée) ;
        • APPROVED - commande approuvée (les fonds sur le compte de l'acheteur sont bloqués) ;
        • DEPOSITED - commande terminée (l'argent est débité du compte de l'acheteur) ;
        • DECLINED - commande rejetée ;
        • REVERSED - commande rejetée ;
        • REFUNDED - remboursement des fonds.
        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 :
        • Cette commande ne peut être payée qu'à l'aide de la liaison ;
        • Le payeur sera redirigé vers la page de paiement où seule la saisie du CVC est requise.

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

        errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
        La langue de description est définie dans le paramètre language de la requête.
        Facultatif

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

        errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
        La langue de description est définie dans le paramètre language de la requête.
        Facultatif

        info String En cas de réponse réussie. Résultat de la tentative de paiement. Ci-dessous sont présentées les valeurs possibles.
        • Votre paiement est traité, redirection en cours...
        • Opération refusée. Vérifiez les données saisies, la suffisance des fonds sur la carte et répétez l'opération. Redirection en cours...
        • Désolé, le paiement ne peut pas être effectué. Redirection en cours...
        • Opération refusée. Contactez le magasin. Redirection en cours...
        • Opération refusée. Contactez la banque qui a émis la carte. Redirection en cours...
        • Opération impossible. L'authentification du porteur de carte s'est terminée sans succès. Redirection en cours...
        • Pas de connexion avec la banque. Répétez plus tard. Redirection en cours...
        • Délai d'attente de saisie des données expiré. Redirection en cours...
        • Aucune réponse reçue de la banque. Répétez plus tard. Redirection en cours...
        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-password

        Exemple 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 :
        • la transmission cvc n'est pas prévue pour tous les paiements tokenisés ;
        • la transmission cvc n'est pas prévue pour les paiements MIT ;
        • la transmission cvc est obligatoire par défaut pour tous les autres types de paiements ; mais si l'autorisation Peut effectuer le paiement sans confirmation CVC est sélectionnée pour le marchand, alors dans ce cas la transmission cvc devient facultative.
          Seuls les chiffres sont autorisés.
        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 :
        • Y - correspondance entre l'adresse de facturation du porteur de carte et l'adresse de livraison ;
        • N - l'adresse de facturation du porteur de carte et l'adresse de livraison ne correspondent pas.

        Ci-dessous sont présentés les paramètres du bloc billingPayerData (données sur l'adresse d'enregistrement du client).

        Obligatoire Nom Type Description
        Conditionnel

        billingCity String [0..50] Ville enregistrée pour une carte spécifique auprès de la Banque Émettrice. Obligatoire pour Visa.
        Conditionnel

        billingCountry String [0..50] Pays enregistré pour la carte spécifique de la banque émettrice. Format : ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) ou nom du pays. Nous recommandons de transmettre le code ISO à deux/trois lettres du pays. Obligatoire pour Visa.
        Conditionnel

        billingAddressLine1 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice (adresse du payeur). Ligne 1. Obligatoire à transmettre pour la vérification AVS. Obligatoire pour Visa.
        Facultatif

        billingAddressLine2 String [0..50] Adresse enregistrée pour la carte spécifique auprès de la Banque Émettrice. Ligne 2.
        Facultatif

        billingAddressLine3 String [0..50] Adresse enregistrée pour une carte spécifique auprès de la Banque Émettrice. Ligne 3.
        Facultatif

        billingPostalCode String [0..9] Code postal enregistré pour la carte spécifique auprès de la Banque Émettrice. Obligatoire à transmettre pour la vérification AVS.
        Facultatif

        billingState String [0..50] État enregistré pour la carte spécifique auprès de la Banque Émettrice. Format : valeur complète du code ISO 3166-2, sa partie ou nom de l'état/région. Peut contenir uniquement des lettres de l'alphabet latin. Nous recommandons de transmettre le code ISO à deux lettres de l'état/région.
        Obligatoire

        payerAccount String [1..32] Numéro de compte de l'expéditeur.
        Conditionnel

        payerLastName String [1..64] Nom de famille de l'expéditeur. Obligatoire pour Visa.
        Conditionnel

        payerFirstName String [1..35] Prénom de l'expéditeur. Obligatoire pour Visa.
        Facultatif

        payerMiddleName String [1..35] Nom patronymique de l'expéditeur.
        Facultatif

        payerCombinedName String [1..99] Nom complet de l'expéditeur.
        Facultatif

        payerIdType String [1..8] Type du document d'identification fourni de l'expéditeur.
        Valeurs possibles :
        • IDTP1 - Passeport
        • IDTP2 - Permis de conduire
        • IDTP3 - Carte sociale
        • IDTP4 - Carte d'identité de citoyen
        • IDTP5 - Certificat de conduite d'affaires
        • IDTP6 - Certificat de réfugié
        • IDTP7 - Permis de séjour
        • IDTP8 - Passeport étranger
        • IDTP9 - Passeport officiel
        • IDTP10 - Passeport temporaire
        • IDTP11 - Passeport de marin
        Facultatif

        payerIdNumber String [1..99] Numéro du document d'identification fourni de l'expéditeur.
        Conditionnel

        payerBirthday String [1..20] Date de naissance de l'expéditeur au format YYYYMMDD. Obligatoire pour Visa.

        Description des paramètres de l'objet shippingPayerData :

        Caractère obligatoire Nom Type Description
        Facultatif shippingCity String [1..50] Ville du client (à partir de l'adresse de livraison)
        Facultatif shippingCountry String [1..50] Pays du client
        Facultatif shippingAddressLine1 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
        Facultatif shippingAddressLine2 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
        Facultatif shippingAddressLine3 String [1..50] Adresse principale du client (à partir de l'adresse de livraison)
        Facultatif shippingPostalCode String [1..16] Code postal du client pour la livraison
        Facultatif shippingState String [1..50] État/région de l'acheteur (à partir de l'adresse de livraison)
        Facultatif shippingMethodIndicator Integer [2] Indicateur du mode de livraison.
        Valeurs possibles :
        • 01 - livraison à l'adresse de paiement du porteur de carte.
        • 02 - livraison à une autre adresse, vérifiée par le Marchand.
        • 03 - livraison à une adresse différente de l'adresse principale du porteur de carte.
        • 04 - envoi en magasin/retrait en magasin (l'adresse du magasin doit être indiquée dans les paramètres de livraison correspondants)
        • 05 - Distribution numérique (inclut les services en ligne et les cartes-cadeaux électroniques)
        • 06 - billets de voyage et d'événements qui ne peuvent pas être livrés.
        • 07 - Autre (par exemple, jeux, biens numériques non livrables, abonnements numériques, etc.)
        Facultatif deliveryTimeframe Integer [2] Délai de livraison de la marchandise.
        Valeurs possibles :
        • 01 - distribution numérique
        • 02 - livraison le jour même
        • 03 - livraison le jour suivant
        • 04 - livraison dans les 2 jours après le paiement et plus tard.
        Facultatif deliveryEmail String [1..254] Adresse e-mail cible pour la livraison de la distribution numérique. Il est préférable de transmettre l'e-mail dans le paramètre de requête indépendant email (mais si vous le transmettez dans ce bloc, les mêmes règles s'appliqueront).

        Description des paramètres de l'objet preOrderPayerData :

        Obligatoire Nom Type Description
        Facultatif preOrderDate String [10] Date de livraison attendue (pour les achats en précommande) au format AAAAMMJJ.
        Facultatif preOrderPurchaseInd Integer [2] Indicateur de placement par le client d'une commande pour une livraison disponible ou future.
        Valeurs possibles :
        • 01 - livraison possible ;
        • 02 - livraison future
        Facultatif reorderItemsInd Integer [2] Indicateur que le client repasse une commande d'une livraison précédemment payée dans le cadre d'une nouvelle commande.
        Valeurs possibles :
        • 01 - commande passée pour la première fois ;
        • 02 - commande répétée

        Description des paramètres de l'objet orderPayerData.

        Obligatoire Nom Type Description
        Facultatif homePhone String [7..15] Téléphone fixe du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
        • +35799988877 ;
        • 0035799988877 ;
        • 35799988877.
        Facultatif workPhone String [7..15] Téléphone professionnel du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
        • +35799988877 ;
        • 0035799988877 ;
        • 35799988877.
        Facultatif mobilePhone String [7..15] Numéro de téléphone portable du titulaire de la carte. Il est nécessaire de toujours indiquer le code du pays, mais le signe + ou 00 au début peut être indiqué ou omis. Le numéro doit avoir une longueur de 7 à 15 chiffres. Ainsi, les valeurs suivantes sont possibles :
        • +35799988877 ;
        • 0035799988877 ;
        • 35799988877.

        Pour les paiements par VISA avec autorisation 3DS, il est nécessaire d'indiquer soit l'adresse électronique, soit le numéro de téléphone du titulaire de la carte. Si vous avez configuré l'affichage du numéro de téléphone sur la page de paiement et que vous avez indiqué un numéro de téléphone incorrect, le client pourra le corriger sur la page de paiement.

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

        errorMessage String [1..512] Paramètre informatif qui constitue la description de l'erreur en cas de survenue d'erreur. La valeur errorMessage peut varier, par conséquent il ne faut pas faire référence explicitement à ses valeurs dans le code.
        La langue de description est définie dans le paramètre language de la requête.
        Facultatif

        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.
        • ECI=01 ou ECI=06 - le marchand prend en charge 3-D Secure, la carte de paiement ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
        • ECI=02 ou ECI=05 - le marchand et la carte de paiement prennent en charge 3-D Secure ;
        • ECI=07 - le marchand ne prend pas en charge 3-D Secure, le paiement est traité sur la base du code CVV2/CVC.
        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=203012

        Exemple 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 :
        • CREATED - créée, mais aucun paiement n'a eu lieu
        • ACTIVE - créée, au moins un paiement effectué
        • FAILED - nombre de tentatives dépassé, tâche désactivée
        • COMPLETED - date EOL atteinte, tous les paiements terminés
        • TERMINATED - arrêtée soit par le client, soit par le marchand
        • EXPIRED - la carte a expiré
        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 :
        • CREATED - créée, mais aucun paiement effectué
        • ACTIVE - créée, au moins un paiement effectué
        • FAILED - nombre de tentatives dépassé, tâche désactivée
        • COMPLETED - date EOL atteinte, tous les paiements terminés
        • TERMINATED - interrompue soit par le client, soit par le marchand
        • EXPIRED - date d'expiration de la carte dépassée
        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 :
        • CREATED - créée, mais aucun paiement n'a eu lieu
        • ACTIVE - créée, au moins un paiement effectué
        • FAILED - nombre de tentatives dépassé, tâche désactivée
        • COMPLETED - date EOL atteinte, tous les paiements terminés
        • TERMINATED - interrompue soit par le client, soit par le marchand
        • EXPIRED - la carte a expiré
        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 :
        • CREATED - créée, mais aucun paiement n'a eu lieu
        • ACTIVE - créée, au moins un paiement effectué
        • FAILED - nombre de tentatives dépassé, tâche désactivée
        • COMPLETED - date EOL atteinte, tous les paiements terminés
        • TERMINATED - interrompue soit par le client, soit par le marchand
        • EXPIRED - durée de validité de la carte expirée

        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 :
        • CREATED - créée, mais aucun paiement n'a eu lieu
        • ACTIVE - créée, au moins un paiement effectué
        • FAILED - nombre de tentatives dépassé, tâche désactivée
        • COMPLETED - date EOL atteinte, tous les paiements terminés
        • TERMINATED - interrompue soit par le client, soit par le marchand
        • EXPIRED - durée de validité de la carte expirée

        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 :
        • CREATED - créée, mais aucun paiement n'a eu lieu
        • ACTIVE - créée, au moins un paiement effectué
        • FAILED - nombre de tentatives dépassé, tâche désactivée
        • COMPLETED - date EOL atteinte, tous les paiements terminés
        • TERMINATED - interrompue soit par le client, soit par le marchand
        • EXPIRED - durée de validité de la carte expirée

        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 :

        Des intégrations plus complexes peuvent impliquer des déclencheurs de rappel supplémentaires, tels que :

        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&amp;orderId=61c33664-85a0-7d6b-af26-09ee009c4000&amp;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.

        getOrderStatusExtended.do

        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": "&ltUnknown&gt"
          }
        }

        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=1

        Types 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 :


        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=0

        Notification 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=0

        Pour 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=0

        Notification 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=0

        Les 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 :
        • approved - blocage (rétention) des fonds sur le compte de l'acheteur ;
        • deposited - opération d'achèvement ;
        • reversed - le paiement a été annulé ;
        • refunded - l'argent pour la commande a été remboursé ;
        • bindingCreated - la carte du payeur a été enregistrée (liaison créée) ;
        • bindingActivityChanged - une liaison existante a été désactivée/activée.
        • declinedByTimeout - le paiement a été refusé en raison de l'expiration du délai d'attente ;
        • declinedCardPresent - transaction refusée avec présentation de carte (paiement par carte physique).
        status Indicateur de réussite de l'opération, spécifiée dans le paramètre operation :
        • 1 - succès ;
        • 0 - erreur.

        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}

        {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=0

        Exemple 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=0

        Algorithme 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

        1. La passerelle de paiement envoie la demande suivante au serveur du vendeur.
          https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&amp;orderNumber=0987&amp;operation=deposited&amp;status=0
        2. Le serveur du vendeur retourne le message HTTP 200 OK à la passerelle de paiement.

        Notification avec somme de contrôle

        1. 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&amp;orderNumber=10747&amp;checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&amp;mdOrder=3ff6962a-7dcc-4283-ab50-a6d7dd3386fe&amp;operation=deposited&amp;status=1
            L'ordre des paramètres dans la notification peut être arbitraire.
        2. Du côté du vendeur, les paramètres checksum et sign_alias sont supprimés de la chaîne de paramètres de notification, et la valeur du paramètre checksum (somme de contrôle) est conservée pour vérifier l'authenticité de la notification ;

        3. 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 paires nom_paramètre;valeur_paramètre doivent ê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;

        4. 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.
        5. Dans la chaîne de somme de contrôle obtenue, toutes les lettres minuscules sont remplacées par des lettres majuscules.

        6. La valeur obtenue est comparée avec la somme de contrôle extraite précédemment du paramètre checksum.

        7. 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 :

        1. Vérifier la signature (paramètre checksum dans la notification) ;
        2. Vérifier deux paramètres de notification de rappel : operation et status.

        Si la valeur du paramètre operation diffère de approved ou deposited, alors la notification de rappel concerne le statut de paiement.

        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 :

        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.
        • 1 - achat
        • 2 - préautorisation
        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 :
        • A - Virement de carte à carte d'un même propriétaire (de compte à compte)
        • B - Virement dans le but d'acquérir de la cryptomonnaie
        • C - Virement pour l'achat de cryptomonnaie
        • D - Versement de fonds
        • E - Virement d'argent sans changement de propriétaire de l'argent
        • F - Virement pour les paris sur les jeux de hasard
        • G - Versement dans les jeux de hasard en ligne
        • L - Virement pour le remboursement de factures de carte de crédit
        • O - Virement pour le paiement de dettes
        • P - Virement de carte à carte de propriétaires différents
        • W - Virement sur son propre compte de portefeuille numérique par étapes pour le paiement
        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:
        • -1 – le code postal et l'adresse correspondent.
        • 1 – l'adresse correspond, le code postal ne correspond pas.
        • 2 - le code postal correspond, l'adresse ne correspond pas.
        • 3 - le code postal et l'adresse ne correspondent pas.
        • 50 - vérification des données demandée, mais le résultat n'est pas réussi.
        • 51 - format incorrect de la demande de vérification AVS/AVV.
        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]
        ";
        ?>
        1. Attribuez une valeur de chaîne à la variable data.
        2. Attribuez la valeur de la clé privée à la variable key.
        3. 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.
        4. Sauvegardez le résultat de la fonction dans la variable hmac.
        5. Affichez le résultat de la fonction avec la commande echo.
        6. 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
        ";
        }
        ?>
        Catégories:
        eCommerce API V1
        Catégories
        Résultats de recherche