AxtonPay API

Document version: 0.9

Informations communes

Point de terminaison de l'API

https://mp.axtonpay.com/api/v1/private/checkout

Content-type

L'API accepte les requêtes HTTP avec 2 types de contenu : 'application/x-www-form-urlencoded', 'application/json'.

L'en-tête HTTP doit correspondre au contenu du corps POST.

Abréviations et définitions

  • {PID} - ID de la facture, généralement c'est la séquence alphanumérique unique de 8 caractères.
  • Shop - Votre site web qui accepte les paiements via le service AxtonPay

Algorithme de travail avec l'API

Séquence habituelle des actions pour recevoir un paiement :

  • créer une facture ('/api/v1/private/checkout/payment/create'), la réponse de l'API renverra l'URL de la facture ('invoice_url'),
  • envoyer l'acheteur à cette facture afin de effectuer le paiement,
  • attendez les notifications du serveur AxtonPay, qui arriveront vers 'server_notification_url',
  • dès réception de toute notification de AxtonPay, vérifier la validité de sa signature et, de préférence, envoyer un accusé de réception à AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • si le statut d'une facture est modifié, exécutez les actions correspondant à ce statut (par exemple, demander toutes les informations sur la facture, expédier les marchandises, créer un ticket pour l'équipe de support, etc.).

Si vous définissez une 'server_notification_url' vide ou invalide lors de la création d'une facture, le service ne peut pas envoyer de notifications concernant les changements de statut ; dans ce cas, vous devriez vérifier vous-même la facture à intervalles réguliers ('/api/v1/private/checkout/payment/get/{PID}').

Autorisation des demandes

Pour autoriser une requête, il est nécessaire de calculer un Hash à partir d'une chaîne formée de manière spéciale. La chaîne est composée en concaténant (collant ensemble) les arguments de l'URL (QUERY_STRING) et le corps de la requête POST (REQUEST_BODY). Il est important que tous les composants soient pris exactement sous la forme dans laquelle ils seront transmis au serveur. Les arguments de l'URL (QUERY_STRING) doivent être pris depuis l'URL en une seule ligne, sans changer l'ordre des arguments et sans supprimer aucun élément. Le corps de la requête POST (REQUEST_BODY) doit également être utilisé sans aucune modification, y compris ne pas retirer les guillemets, les espaces, les crochets ou les sauts de ligne.

Dans les cas d'un corps de requête POST vide, et dans le cas d'arguments d'URL vides, ce composant sera simplement une chaîne vide.

La séquence des données dans la demande de signature : QUERY_STRING d'abord, puis les données POST. Vous ne devez pas insérer de signes de connexion entre elles, il suffit de concaténer les deux chaînes de texte.

Encore une fois, chaque symbole est significatif. Vous ne devez ajouter ni supprimer un espace ou un symbole de nouvelle ligne. Utilisez simplement les données brutes reçues par le serveur.

Un SHA-256 hachage avec la clé 'Secret key' est extrait de la chaîne résultante et utilisé comme deuxième argument de la fonction hash_hmac().

Il est obligatoire de passer le paramètre 'time' contenant le POSIX timestamp (Unix time) actuel.

Cette signature est valide pendant 24 heures. Si la valeur du paramètre 'time' diffère de l'heure actuelle du serveur de plus de 24 heures (en avance ou en retard), la requête échouera même si la signature est calculée sans erreurs.

Si le panneau marchand a accepté une demande avec une certaine signature, cette signature ne peut pas être utilisée à nouveau, même pour envoyer la demande avec les mêmes paramètres (cela inclut le paramètre 'time').

Le hachage résultant est transmis dans l'en-tête HTTP 'Sign'.

En plus de la signature calculée, la requête doit également contenir un en-tête 'Api-Key' contenant la clé API utilisée. Exemple :

$headers = [
      'Api-Key: ' . $the_api_key,
      'Sign: ' . $signature_sha256
    ];

Vous pouvez signer la demande envoyée au AxtonPay avec n'importe quelle clé valide qui appartient à ce point de vente. Cependant, le AxtonPay utilise toujours la clé que vous avez sélectionnée dans le panneau marchand.

Exemple de calcul de signature :

/* 
Imagine there is the POST request:
URI: '/api/v1/private/checkout/payment/create?time=1735084500.3561'
POST body: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD'
So there are HTTP query string and request body:
*/ 
$the_query_string = 'time=1735084500.3561';
$the_request_body = '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD';

// • A pair of 'API key' and 'Secret key' gathered from the admin panel
$the_api_key = 'key1';
$the_api_secret = 'secret1';

// • Concatenation:
$string_for_sha = $the_query_string . $the_request_body;
// Value: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD'

// • Calculating the HTTP header 'Sign'
// hash method is SHA-256
$signature_sha256 = hash_hmac("sha256", $string_for_sha, $the_api_secret); 
// '31ca271a15e45802e07b7559a5f520656c050dda79e6fa46d52a15fc51d193cd'

/* • Signed HTTP request:
  Method: POST
  URI: '/api/v1/private/checkout/payment/create?time=1735084500.3561'
  HTTP header 'Api-Key': 'key1'
  HTTP header 'Sign': '31ca271a15e45802e07b7559a5f520656c050dda79e6fa46d52a15fc51d193cd'
  POST body: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD'
*/

Faites attention aux espaces et aux sauts de ligne dans un autre exemple :

/* 
Imagine there is the POST request:
URI: '/api/v1/private/checkout/payment/create?shop_name=Very%20useful%20service'
POST body: '{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}'

Attention! It's important to keep the raw data 'as is', including all tabulations, whitespaces, and line breaks. 
For example, the signature becomes invalid if your software formats json, adds or removes spaces. 

So there are such HTTP query string and POST request body:
*/ 
$the_query_string = 'shop_name=Very%20useful%20service';
$the_request_body = '{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}';

// • A pair of 'API key' and 'Secret key' gathered from the merchant panel
$the_api_key = 'key1';
$the_api_secret = 'secret1';

// • Concatenation:
//
// hash method is SHA-256 (HTTP query string + request body)
$string_for_sha = $the_query_string . $the_request_body;
/* Value: 'shop_name=Very%20useful%20service{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}'
*/

// • Calculating the HTTP header 'Sign'

$signature_sha256 = hash_hmac("sha256", $string_for_sha, $the_api_secret); 
// 'ef15476f28b379e4b137a2dcd9ed495332e4766004ac3610bb92a69ba2303c28'

/* • Signed HTTP request:
  Method: POST
  URI: '/api/v1/private/checkout/payment/create'
  HTTP header 'Api-Key': 'key1'
  HTTP header 'Sign': 'ef15476f28b379e4b137a2dcd9ed495332e4766004ac3610bb92a69ba2303c28'
  POST body: '{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}' 
*/

Le Python exemple de composition de la chaîne pour le calcul de la signature :

string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'

Paramètres

L'API accepte tous les paramètres à la fois dans QUERY_STRING et dans le corps de la demande POST.

Variables booléennes

L'API s'attend à recevoir '0' ou '1' dans des variables booléennes, mais à cause de la conversion implicite de type, toute chaîne de texte sera traitée comme un '1', même le mot 'false'. Ainsi, pour définir explicitement une valeur 'FALSE' pour une variable booléenne, vous devez lui passer soit la valeur '0' soit une chaîne vide.

Séparateur décimal

Seul le point décimal est utilisé comme séparateur décimal dans les nombres.

Casse des caractères dans les paramètres

À quelques exceptions près, tous les paramètres sont sensibles à la casse.

URL de rappel

Dans le panneau d'administration de AxtonPay, sur la page des paramètres de paiement, il est possible de définir des URL de magasin pour recevoir des notifications serveur à serveur de AxtonPay, ainsi que des URL pour rediriger l'acheteur après le paiement de la facture ou son annulation, ainsi qu'en cas d'erreur.

Ces URL peuvent être remplacées dans la demande de création de facture.

Méthodes de AxtonPay API

Création de facture : /api/v1/private/checkout/payment/create

La méthode /api/v1/private/checkout/payment/create lance la création de la facture.

Si elle réussit, la méthode renvoie un lien ('invoice_url') vers lequel vous devez diriger le client pour le paiement.

Paramètres de facture propres :

  • time (requis) - POSIX timestamp (Unix time)
  • amount (requis) - montant à payer (le prix du produit ou du service que le magasin souhaite recevoir)
  • currency (requis) - Code de devise à 3 lettres selon ISO 4217-alpha, insensible à la casse
  • pms (requis) - méthodes de paiement affichées sur la page de la facture. Si vous voulez autoriser toutes les méthodes de paiement, la valeur est 'all' ; si vous voulez n'autoriser que certaines d'entre elles, listez leurs identifiants numériques séparés par des virgules.
  • pm - identifiant du mode de paiement sélectionné. Il est important que si le paramètre 'pm' est passé, la facture sera créée en 'mode transparent', c'est-à-dire que l'acheteur ne verra pas la page de facturation, mais ira directement vers le système de paiement.
  • extra_data - un tableau associatif contenant toutes les données supplémentaires ; ces données sont renvoyées au magasin dans leur intégralité
  • shop_user_id - identifiant utilisateur dans le magasin, il est renvoyé au magasin sous une forme inchangée
  • shop_payment_id - identifiant de paiement dans le magasin, il est renvoyé au magasin sous forme inchangée
  • shop_name - nom du magasin (affiché sur la page de facture)
  • shop_payment_desc - description de la commande (affichée sur la page de la facture)
  • shop_payment_remark - vos notes concernant ce paiement (il s'agit d'un champ pour toutes les notes que vous avez sur le paiement, que AxtonPay ne transmet nulle part ; elles ne sont visibles que dans la liste des paiements ; elles ne retournent pas au magasin)
  • valid_time - l'intervalle de temps pendant lequel la facture peut être payée ; en secondes
  • view_time - intervalle de temps pendant lequel la facture est disponible pour consultation via un lien externe ; en secondes ; le compte à rebours commence après la fin de la période 'valid_time'
  • server_notification_method - méthode d'envoi de notifications serveur-serveur concernant les statuts de paiement au magasin ; valeurs valides : POST, GET

Certaines options pour la facture sont définies sur la page des paramètres de paiement. Mais les valeurs transmises dans la requête auront la priorité sur ces paramètres.

Paramètres de paiement pouvant être remplacés pour cette facture :

  • customer_success_url - un lien vers lequel l'acheteur sera redirigé si la facture est payée avec succès (c'est-à-dire si le statut de la facture est 'paid' ou 'overpaid').
  • customer_cancel_url - un lien vers lequel l'acheteur sera redirigé si le paiement est annulé
  • customer_fail_url - un lien vers lequel l'acheteur sera redirigé si le paiement se termine par une erreur
  • server_notification_url - lien pour envoyer des notifications serveur-à-serveur des statuts de paiement au magasin

Remarque : Afin de se conformer à votre propre politique de confidentialité, il n'est généralement pas nécessaire d'inclure les données personnelles de votre client dans les propriétés de la facture. Par exemple, dans le paramètre "shop_user_id", il est préférable de spécifier un identifiant client abstrait plutôt que son e-mail ou son numéro de téléphone. De même, dans le "shop_payment_desc", il vaut mieux ne pas inclure du tout de données sur le client, car il connaît déjà tout sur lui-même ; à la place, vous pouvez écrire certaines informations sur les biens ou services payés, ou même simplement indiquer le type d'action, par exemple, " Achat " ou " Recharge de solde ".

Toutes les références sont nécessairement transmises avec le protocole.

Exemple de demande :

<?php
// API credentials - get it from settings of the checkout
$api_key = 'API_KEY';
$api_secret = 'API_SECRET';
// API endpoint
$api_endpoint = 'https://mp.axtonpay.com/api/v1/private/checkout';
// Current POSIX timestamp
$time = time();
// API method URL
$api_url = $api_endpoint . '/payment/create';

// Prepare POST parameters
$post_data = [
    'amount' => 4.99,
    'currency' => 'USD',
    'pms' => 'all', // visible payment methods; either 'all' or comma-separated list of selected GUIDs
    // 'pm' => '92807385', // define the certain payment method if you do not want payer to see the list of all possible payment methods

    // Below parameters are optional
    'extra_data' => ['param1'=>'value 1', 'param2'=>'value 2'],

    'shop_user_id' => '[email protected]',
    'shop_payment_id' => 'TEST-333-' . $time,
    'shop_name' => 'TEST-333 web shop',
    'shop_payment_desc' => 'TEST-333 payment description visible to payer',
    'shop_payment_remark' => 'TEST-333 payment remark for admin',

    'customer_success_url' => 'https://example.com/?status=paid-or-overpaid&once=TEST-333-' . $time, 
    'customer_cancel_url' => 'https://example.com/?status=cancelled-by-payer&once=TEST-333-' . $time,
    'customer_fail_url' => 'https://example.com/?status=error&once=TEST-333-' . $time,
    'server_notification_url' => 'https://example.com/?for=server-to-server-notificataions',
    'server_notification_method' => 'POST',
	
    'valid_time' => 60*60*24*7, // seconds
    'view_time'  => 60*60*24*21, // seconds, clock starts after ending of 'valid_time' period
];

// Prepare GET parameters
$query_string = 'time=' . $time;

// Build the request body
$request_body = json_encode($post_data); // Encode as JSON
// $request_body = http_build_query($post_data);

// Concatenate QUERY_STRING and REQUEST_BODY
$string_for_sha = $query_string . $request_body;

// Calculate the signature
$signature = hash_hmac('sha256', $string_for_sha, $api_secret);

// Prepare HTTP headers
$headers = [
    'Api-Key: ' . $api_key,
    'Sign: ' . $signature,
    'Content-Type: application/json'
];

// Initialize cURL
$ch = curl_init($api_url . '?' . $query_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_body);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// Execute the request
$response = curl_exec($ch);

// Close cURL
curl_close($ch);
?>

Exemple d'une réponse réussie lors de la demande de création d'une facture :

{
    "status": "ok",
    "data": "invoice created",
    "pid": "HNQ5CAHM",
    "test": false,
    "created_at": "2025-12-27T08:14:55.000000Z",
    "invoice_url": "https:\/\/27375212.b88pay.com\/i\/HNQ5CAHM"
}

Obtention des informations de facture : /api/v1/private/checkout/payment/get/{PID}

Pour obtenir les informations dont vous avez besoin, appelez la méthode /api/v1/private/checkout/payment/get/{PID}, en spécifiant le PID de la facture à la fin de l'URL.

Paramètres de la requête :

  • time (requis) - POSIX timestamp (Unix time)

Exemple d'une ligne pour composer une signature :

// Full URL:
https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343

// String for signature calculation: 
time=1766837343

Exemple de réponse :

{
    "status": "ok",
    "data": {
        "pid": "HNQ5CAHM",
        "checkout_guid": 34677320,
        "created_at": "2025-12-27 12:07:21",
        "updated_at": "2025-12-27 12:07:34",
        "data": {
            "ip": "1.2.3.4",
            "pms": "all",
            "extra_data": {
                "param1": "val1",
                "param2": "val2",
                "server_notification_url": "https:\/\/example.com\/?for=server-to-server-notificataions"
            },
            "redirect_url": "\/wait\/HNQ5CAHM",
            "customer_fail_url": "https:\/\/example.com\/?status=error&id=TEST-333-1766837240",
            "allow_change_amount": false,
            "customer_cancel_url": "https:\/\/example.com\/?status=cancelled-by-payer&id=TEST-333-1766837240",
            "customer_success_url": "https:\/\/example.com\/?status=paid-or-overpaid&id=TEST-333-1766837240"
        },
        "payment_status": 0,
        "amount": "4.99",
        "filled": "0.00",
        "currency_id": 5,
        "transparent": 1,
        "expires_at": "2026-01-03 12:07:21",
        "invisible_at": "2026-01-26 12:07:21",
        "paid_at": null,
        "confirmed_at": null,
        "shop_name": "TEST-333 web shop",
        "shop_user_id": "[email protected]",
        "shop_payment_id": "TEST-333-1766837240",
        "shop_payment_desc": "TEST-333 payment description visible to payer",
        "shop_payment_remark": "TEST-333 payment remark for merchant",
        "payment_method_id": 92807385,
        "gateway_id": 40056646,
        "payment_option_id": 297,
        "txid": null,
        "account_from": null,
        "account_to": "TEnYvbfg9YqJeaVtVHAwEvG2kmAJcTzxTh",
        "payment_option_amount": "17.865973",
        "payment_option_filled": "0.000000",
        "payment_option_currency_id": 317,
        "exchange_rates_expires_at": "2025-12-27 12:27:33",
        "test": false,
        "initiator": "api",
        "initiator_info": null,
        "payment_option": {
            "id": 297,
            "gateway_id": 40056646,
            "pm": "trx",
            "currency_id": 317,
            "name": "Tron",
            "icon": "crypto\/tron.png",
            "min_invoice": null,
            "max_invoice": null
        },
        "payment_option_currency": {
            "id": 317,
            "name": "Tron",
            "code": "TRX",
            "minor_unit": 6
        },
        "currency": {
            "id": 5,
            "name": "United States dollar",
            "code": "USD",
            "minor_unit": 2
        },
        "invoice_url": "https:\/\/27375212.b88pay.com\/i\/HNQ5CAHM"
    }
}

Comparaison du montant demandé et du montant payé

La réponse contient plusieurs montants différents (dans la monnaie dans laquelle la facture a été émise) :

  • "amount" - montant facturé
  • "filled" - payé une partie de la facture,
  • "total_filled" - combien le client a payé au total, y compris les commissions.

Si "filled = amount", alors c'est payé exactement autant qu'il le faut.

S'il y a un "filled > amount", il y a un trop-perçu.

Si "filled < amount", la facture n'a pas été entièrement payée (sous-paiement).

Facture : traitement de la notification de AxtonPay concernant le changement de statut

Chaque fois que le statut d'une facture est modifié, AxtonPay envoie une notification à server_notification_url (en utilisant le server_notification_method)

Exemple de données :

{
    "pid": "U5IB4WIO",
    "status": "3",
    "shop_user_id": "3q23g",
    "shop_payment_id": "h76r5",
    "amount": "240.00000000",
    "filled": "0.00000000",
    "fee": "0",
    "total_filled": "0.00000000",
    "currency": "DASH",
    "test": "0"
}

En réponse à cette notification, AxtonPay s'attend à recevoir HTTP code 200, ce qui confirme sa réception réussie. Sinon, AxtonPay réessaiera 12 fois de plus à des intervalles de plus en plus longs, puis le statut de la notification passe à 'error' (mais cela n'affecte pas le statut de la facture elle-même).

Valeurs de statut possibles :

  • 0 - pending
  • 1 - paid
  • 2 - error
  • 3 - cancelled by customer
  • 4 - underpaid
  • 5 - overpaid
  • 8 - expired

Les statuts de paiement réussis sont 1 (paid) et 5 (overpaid) ; en cas de réception de ceux-ci, vous pouvez transférer l'achat payé au client ou reconstituer le solde. Pour les paiements avec le statut 5 (overpaid), en cas de reconstitution du solde, vous pouvez reconstituer le solde du montant effectivement reçu, mais en cas de vente de biens/services et d'un montant important de trop-perçu, il est conseillé de contacter le payeur et de décider avec lui comment traiter le trop-perçu.

Le statut partiellement réussi est 4 (underpaid) ; en cas de réception de ce statut, il est possible de recharger le solde du montant du paiement effectivement reçu. Cependant, ce statut ne peut pas être considéré comme réussi pour la vente de biens/services.

Tous les autres statuts - 0 (pending), 2 (error), 3 (canceled by customer) signifient une absence totale de paiement ; en cas de leur réception, aucune action concernant le réapprovisionnement du solde ou la vente de biens/services ne doit être effectuée.

Vérification de la signature

Pour être sûr que la notification est envoyée par AxtonPay exactement, il est nécessaire de vérifier la signature de la notification reçue avant de lui faire confiance. La vérification est similaire à la signature de vos propres requêtes, seule la dernière étape est ajoutée, lorsque vous devez comparer la signature calculée avec l'en-tête HTTP reçu 'Sign'.

Les étapes principales après avoir reçu une notification concernant le changement de statut de paiement sont les suivantes :

  • prendre toute la chaîne d'arguments (QUERY_STRING) de la notification reçue,
  • prendre tout le POST data (REQUEST_BODY) de la notification reçue,
  • calculez la signature en utilisant ces QUERY_STRING + REQUEST_BODY et le 'Secret key' approprié,
  • comparez la signature calculée avec celle qui est reçue dans l'en-tête HTTP 'Sign',
  • si les signatures sont les mêmes, la notification vient vraiment de AxtonPay;
  • si les signatures sont différentes, cela peut être une tentative de tricherie de la part du payeur.

Exemple d'une ligne pour la génération de signature :

// Full URL:
https://EXAMPLE.COM?time=1737027838.1237

// POST body: 
pid=ABCD5678&status=1&shop_user_id=&shop_payment_id=&amount=25.00000000&filled=25.00000000&fee=0&total_filled=25.00000000&currency=RDD&test=0

// String for signature calculation: 
time=1737027838.1237pid=ABCD5678&status=1&shop_user_id=&shop_payment_id=&amount=25.00000000&filled=25.00000000&fee=0&total_filled=25.00000000&currency=RDD&test=0

Confirmation que le magasin a traité les informations de paiement : /api/v1/private/checkout/payment/confirm/{PID}

Cette requête est envoyée à AxtonPay en réponse à une notification reçue de celui-ci. Fonctionnellement, c'est une confirmation que le magasin a reçu et traité avec succès la notification reçue.

Pour envoyer une requête, appelez la méthode /api/v1/private/checkout/payment/confirm/{PID}, en spécifiant le pid de la facture à la fin de l'URL.

Paramètres de la requête :

  • time (requis) - POSIX timestamp (Unix time)
  • status (obligatoire, entier) - numéro de statut de paiement pour lequel le magasin envoie une confirmation

Si le statut transmis correspond au statut actuel de cette facture dans le système, AxtonPay répondra par 'OK' et s'il ne correspond pas, il répondra par une erreur.

Exemple d'une ligne pour la génération de signature :

// Full URL:
https://mp.axtonpay.com/api/v1/private/checkout/payment/confirm/ABCD5678?time=1737011414

// POST body: 
{"status":"1"}

// String for signature calculation:
time=1737011414{"status":"1"}

Exemple de réponse si le statut de paiement actuel est le même :

{
    "status": "ok",
    "data": "\"Paid\" status notification is confirmed"
}

Exemple de réponse si le statut de paiement actuel diffère de celui transmis dans la requête :

{
    "status": "error",
    "message": "Something went wrong"
}

Codes monétaires

Les devises qui peuvent être utilisées pour la création d'une facture.

La plupart des codes de monnaie utilisés appartiennent aux monnaies fiduciaires, et ils sont égaux au ISO 4217. La liste contient également plusieurs crypto-monnaies.

Code Nom Chiffres décimaux Type
BCH Bitcoin Cash 8 Cryptomonnaie
BLK Blackcoin 8 Cryptomonnaie
BNB Binancecoin 18 Cryptomonnaie
BTC Bitcoin 8 Cryptomonnaie
BTT BitTorrent 18 Jeton crypto
BUSD Binance USD 18 Jeton crypto
DAI Dai 18 Jeton crypto
DASH Dash 8 Cryptomonnaie
DOGE Dogecoin 8 Cryptomonnaie
ETC Ethereum Classic 18 Cryptomonnaie
ETH Ethereum 18 Cryptomonnaie
LTC Litecoin 8 Cryptomonnaie
NLG Gulden 8 Cryptomonnaie
RDD ReddCoin 8 Cryptomonnaie
TRX Tron 6 Cryptomonnaie
USDC USD Coin 6 Jeton crypto
USDD Decentralized USD 18 Jeton crypto
USDT Tether USDT 6 Jeton crypto
VTC Vertcoin 8 Cryptomonnaie
XVG Verge 8 Cryptomonnaie
AED United Arab Emirates dirham 2 Monnaie fiduciaire
AFN Afghan afghani 2 Monnaie fiduciaire
ALL Albanian lek 2 Monnaie fiduciaire
AMD Armenian dram 2 Monnaie fiduciaire
ANG Netherlands Antillean guilder 2 Monnaie fiduciaire
AOA Angolan kwanza 2 Monnaie fiduciaire
ARS Argentine peso 2 Monnaie fiduciaire
AUD Australian dollar 2 Monnaie fiduciaire
AWG Aruban florin 2 Monnaie fiduciaire
AZN Azerbaijani manat 2 Monnaie fiduciaire
BAM Bosnia and Herzegovina convertible mark 2 Monnaie fiduciaire
BBD Barbados dollar 2 Monnaie fiduciaire
BDT Bangladeshi taka 2 Monnaie fiduciaire
BGN Bulgarian lev 2 Monnaie fiduciaire
BHD Bahraini dinar 3 Monnaie fiduciaire
BIF Burundian franc 2 Monnaie fiduciaire
BMD Bermudian dollar 2 Monnaie fiduciaire
BND Brunei dollar 2 Monnaie fiduciaire
BOB Boliviano 2 Monnaie fiduciaire
BRL Brazilian real 2 Monnaie fiduciaire
BSD Bahamian dollar 2 Monnaie fiduciaire
BTN Bhutanese ngultrum 2 Monnaie fiduciaire
BWP Botswana pula 2 Monnaie fiduciaire
BYN Belarusian ruble 2 Monnaie fiduciaire
BZD Belize dollar 2 Monnaie fiduciaire
CAD Canadian dollar 2 Monnaie fiduciaire
CDF Congolese franc 2 Monnaie fiduciaire
CHF Swiss franc 2 Monnaie fiduciaire
CLP Chilean peso 2 Monnaie fiduciaire
CNY Renminbi (Chinese) yuan 2 Monnaie fiduciaire
COP Colombian peso 2 Monnaie fiduciaire
CRC Costa Rican colon 2 Monnaie fiduciaire
CUC Cuban convertible peso 2 Monnaie fiduciaire
CUP Cuban peso 2 Monnaie fiduciaire
CVE Cape Verde escudo 2 Monnaie fiduciaire
CZK Czech koruna 2 Monnaie fiduciaire
DJF Djiboutian franc 2 Monnaie fiduciaire
DKK Danish krone 2 Monnaie fiduciaire
DOP Dominican peso 2 Monnaie fiduciaire
DZD Algerian dinar 2 Monnaie fiduciaire
EGP Egyptian pound 2 Monnaie fiduciaire
ERN Eritrean nakfa 2 Monnaie fiduciaire
ETB Ethiopian birr 2 Monnaie fiduciaire
EUR Euro 2 Monnaie fiduciaire
FJD Fiji dollar 2 Monnaie fiduciaire
FKP Falkland Islands pound 2 Monnaie fiduciaire
GBP Pound sterling 2 Monnaie fiduciaire
GEL Georgian lari 2 Monnaie fiduciaire
GHS Ghanaian cedi 2 Monnaie fiduciaire
GIP Gibraltar pound 2 Monnaie fiduciaire
GMD Gambian dalasi 2 Monnaie fiduciaire
GNF Guinean franc 0 Monnaie fiduciaire
GTQ Guatemalan quetzal 2 Monnaie fiduciaire
GYD Guyanese dollar 2 Monnaie fiduciaire
HKD Hong Kong dollar 2 Monnaie fiduciaire
HNL Honduran lempira 2 Monnaie fiduciaire
HRK Croatian kuna 2 Monnaie fiduciaire
HTG Haitian gourde 2 Monnaie fiduciaire
HUF Hungarian forint 2 Monnaie fiduciaire
IDR Indonesian rupiah 2 Monnaie fiduciaire
ILS Israeli new shekel 2 Monnaie fiduciaire
INR Indian rupee 2 Monnaie fiduciaire
IQD Iraqi dinar 3 Monnaie fiduciaire
IRR Iranian rial 2 Monnaie fiduciaire
ISK Icelandic krona 2 Monnaie fiduciaire
JMD Jamaican dollar 2 Monnaie fiduciaire
JOD Jordanian dinar 3 Monnaie fiduciaire
JPY Japanese yen 3 Monnaie fiduciaire
KES Kenyan shilling 2 Monnaie fiduciaire
KGS Kyrgyzstani som 2 Monnaie fiduciaire
KHR Cambodian riel 2 Monnaie fiduciaire
KMF Comoro franc 2 Monnaie fiduciaire
KPW North Korean won 2 Monnaie fiduciaire
KRW South Korean won 2 Monnaie fiduciaire
KWD Kuwaiti dinar 3 Monnaie fiduciaire
KYD Cayman Islands dollar 2 Monnaie fiduciaire
KZT Kazakhstani tenge 2 Monnaie fiduciaire
LAK Lao kip 2 Monnaie fiduciaire
LBP Lebanese pound 2 Monnaie fiduciaire
LKR Sri Lankan rupee 2 Monnaie fiduciaire
LRD Liberian dollar 2 Monnaie fiduciaire
LSL Lesotho loti 2 Monnaie fiduciaire
LYD Libyan dinar 3 Monnaie fiduciaire
MAD Moroccan dirham 2 Monnaie fiduciaire
MDL Moldovan leu 2 Monnaie fiduciaire
MGA Malagasy ariary 2 Monnaie fiduciaire
MKD Macedonian denar 2 Monnaie fiduciaire
MMK Myanmar kyat 2 Monnaie fiduciaire
MNT Mongolian togrog 2 Monnaie fiduciaire
MOP Macanese pataca 2 Monnaie fiduciaire
MRU Mauritanian ouguiya 2 Monnaie fiduciaire
MUR Mauritian rupee 2 Monnaie fiduciaire
MVR Maldivian rufiyaa 2 Monnaie fiduciaire
MWK Malawian kwacha 2 Monnaie fiduciaire
MXN Mexican peso 2 Monnaie fiduciaire
MYR Malaysian ringgit 2 Monnaie fiduciaire
MZN Mozambican metical 2 Monnaie fiduciaire
NAD Namibian dollar 2 Monnaie fiduciaire
NGN Nigerian naira 2 Monnaie fiduciaire
NIO Nicaraguan cordoba 2 Monnaie fiduciaire
NOK Norwegian krone 2 Monnaie fiduciaire
NPR Nepalese rupee 2 Monnaie fiduciaire
NZD New Zealand dollar 2 Monnaie fiduciaire
OMR Omani rial 3 Monnaie fiduciaire
PAB Panamanian balboa 2 Monnaie fiduciaire
PEN Peruvian sol 2 Monnaie fiduciaire
PGK Papua New Guinean kina 2 Monnaie fiduciaire
PHP Philippine peso 2 Monnaie fiduciaire
PKR Pakistani rupee 2 Monnaie fiduciaire
PLN Polish zloty 2 Monnaie fiduciaire
PYG Paraguayan guarani 2 Monnaie fiduciaire
QAR Qatari riyal 2 Monnaie fiduciaire
RON Romanian leu 2 Monnaie fiduciaire
RSD Serbian dinar 2 Monnaie fiduciaire
RUB Russian ruble 2 Monnaie fiduciaire
RWF Rwandan franc 2 Monnaie fiduciaire
SAR Saudi riyal 2 Monnaie fiduciaire
SBD Solomon Islands dollar 2 Monnaie fiduciaire
SCR Seychelles rupee 2 Monnaie fiduciaire
SDG Sudanese pound 2 Monnaie fiduciaire
SEK Swedish krona/kronor 2 Monnaie fiduciaire
SGD Singapore dollar 2 Monnaie fiduciaire
SHP Saint Helena pound 2 Monnaie fiduciaire
SLL Sierra Leonean leone 2 Monnaie fiduciaire
SOS Somali shilling 2 Monnaie fiduciaire
SRD Surinamese dollar 2 Monnaie fiduciaire
SSP South Sudanese pound 2 Monnaie fiduciaire
STN Sao Tome and Pricipe dobra 2 Monnaie fiduciaire
SVC Salvadoran colon 2 Monnaie fiduciaire
SYP Syrian pound 2 Monnaie fiduciaire
SZL Swazi lilangeni 2 Monnaie fiduciaire
THB Thai baht 2 Monnaie fiduciaire
TJS Tajikistani somoni 2 Monnaie fiduciaire
TMT Turkmenistan manat 2 Monnaie fiduciaire
TND Tunisian dinar 3 Monnaie fiduciaire
TOP Tongan paanga 2 Monnaie fiduciaire
TRY Turkish lira 2 Monnaie fiduciaire
TTD Trinidad and Tobago dollar 2 Monnaie fiduciaire
TWD New Taiwan dollar 2 Monnaie fiduciaire
TZS Tanzanian shilling 2 Monnaie fiduciaire
UAH Ukrainian hryvnia 2 Monnaie fiduciaire
UGX Ugandan shilling 0 Monnaie fiduciaire
USD United States dollar 2 Monnaie fiduciaire
UYU Uruguayan peso 2 Monnaie fiduciaire
UZS Uzbekistan som 2 Monnaie fiduciaire
VES Venezuelan bolivar soberano 2 Monnaie fiduciaire
VND Vietnamese dong 2 Monnaie fiduciaire
VUV Vanuatu vatu 0 Monnaie fiduciaire
WST Samoan tala 2 Monnaie fiduciaire
XAF CFA franc BEAC 3 Monnaie fiduciaire
XCD East Caribbean dollar 2 Monnaie fiduciaire
XOF CFA franc BCEAO 2 Monnaie fiduciaire
XPF CFP franc (franc Pacifique) 3 Monnaie fiduciaire
XTS Codes spécifiquement réservés à des fins de test 2 Code réservé
XXX Les codes attribués aux transactions où aucune monnaie n'est impliquée 2 Code réservé
YER Yemeni rial 2 Monnaie fiduciaire
ZAR South African rand 2 Monnaie fiduciaire
ZMW Zambian kwacha 2 Monnaie fiduciaire
ZWL Zimbabwean dollar 2 Monnaie fiduciaire