Document version: 0.9
Informazioni comuni
endpoint API
https://mp.axtonpay.com/api/v1/private/checkout
Content-type
L'API accetta richieste HTTP con 2 tipi di contenuto: 'application/x-www-form-urlencoded', 'application/json'.
L'intestazione HTTP dovrebbe adattarsi al contenuto del corpo POST.
Abbreviazioni e definizioni
- {PID} - ID della fattura, di solito è la sequenza alfanumerica unica di 8 caratteri.
- Shop - Il tuo sito web che accetta pagamenti tramite il servizio AxtonPay
Algoritmo di lavoro con API
Sequenza abituale di azioni per ricevere il pagamento:
- crea una fattura ('/api/v1/private/checkout/payment/create'), la risposta dell'API restituirà l'URL della fattura ('invoice_url'),
- inviare l'acquirente a questa fattura per effettuare il pagamento,
- aspetta le notifiche del server AxtonPay, che arriveranno a 'server_notification_url',
- alla ricezione di qualsiasi notifica da AxtonPay, verificare la validità della sua firma e preferibilmente inviare una conferma di ricezione a AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
- Se lo stato di una fattura viene modificato, eseguire le azioni corrispondenti a questo stato (ad esempio, richiedere informazioni complete sulla fattura, spedire la merce, creare un ticket per il team di supporto, ecc.).
Se imposti un 'server_notification_url' vuoto o non valido durante la creazione di una fattura, il servizio non è in grado di inviare notifiche sui cambiamenti di stato; in tali casi, dovresti controllare la fattura da solo a intervalli regolari ('/api/v1/private/checkout/payment/get/{PID}').
Autorizzazione delle richieste
Per autorizzare una richiesta è necessario calcolare un Hash da una stringa formata in un modo speciale. La stringa è composta concatenando (unendo insieme) gli argomenti dell'URL (QUERY_STRING) e il corpo della richiesta POST (REQUEST_BODY). È importante che tutti i componenti siano presi esattamente nella forma in cui verranno trasmessi al server. Gli argomenti dell'URL (QUERY_STRING) devono essere presi dall'URL come una singola riga, senza cambiare l'ordine degli argomenti e senza eliminare alcun elemento. Anche il corpo della richiesta POST (REQUEST_BODY) deve essere utilizzato senza alcuna modifica, inclusi il non rimuovere da esso virgolette, spazi, parentesi, interruzioni di linea.
Nei casi di un corpo della richiesta POST vuoto e nel caso di argomenti URL vuoti, quel componente sarà semplicemente una stringa vuota.
La sequenza dei dati nella richiesta di firma: QUERY_STRING prima, poi i dati POST. Non dovresti inserire alcun segno di collegamento tra di essi, semplicemente concatenare le due stringhe di testo.
Ancora una volta, ogni simbolo è significativo. Non dovresti aggiungere né rimuovere nemmeno uno spazio o un simbolo di nuova linea. Usa solo i dati grezzi ricevuti dal server.
Un hash SHA-256 con la chiave 'Secret key' viene preso dalla stringa risultante e usato come secondo argomento della funzione hash_hmac().
È obbligatorio passare il parametro 'time' contenente l'attuale POSIX timestamp (Unix time).
Questa firma è valida per 24 ore. Se il valore del parametro 'time' differisce dall'orario attuale del server di più di 24 ore (sia in avanti che indietro), la richiesta fallirà anche se la firma è calcolata senza errori.
Se il pannello del commerciante ha accettato una richiesta con una certa firma, quella firma non può essere utilizzata di nuovo, nemmeno per inviare la richiesta con gli stessi parametri (questo include il parametro 'time').
L'hash risultante viene passato nell'intestazione HTTP 'Sign'.
Oltre alla firma calcolata, la richiesta deve contenere anche un'intestazione 'Api-Key' contenente la chiave API utilizzata. Esempio:
$headers = [
'Api-Key: ' . $the_api_key,
'Sign: ' . $signature_sha256
];
Puoi firmare la richiesta inviata al AxtonPay con qualsiasi chiave valida che appartenga a questo checkout. Tuttavia, il AxtonPay utilizza sempre la chiave che hai selezionato nel pannello del merchant.
Esempio di calcolo della firma:
/* 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¤cy=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¤cy=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¤cy=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¤cy=USD' */
Fai attenzione agli spazi bianchi e ai ritorni a capo in un altro esempio:
/*
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"
}'
*/
L'esempio Python di composizione della stringa per il calcolo della firma:
string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'
Parametri
L'API accetta tutti i parametri sia nel QUERY_STRING che nel corpo della richiesta POST.
Variabili booleane
L'API si aspetta di ricevere '0' o '1' in variabili Booleane, ma a causa della conversione implicita di tipo, qualsiasi stringa di testo sarà trattata come un '1', anche la parola 'false'. Pertanto, per impostare esplicitamente un valore 'FALSE' per una variabile Booleana, è necessario passarle o il valore '0' o una stringa vuota.
Separatore decimale
Solo il punto decimale viene usato come separatore dei decimali nei numeri.
Maiuscole e minuscole nei parametri
Con poche eccezioni, tutti i parametri fanno distinzione tra maiuscole e minuscole.
URL di richiamata
Nel pannello di amministrazione di AxtonPay, nella pagina delle impostazioni di checkout, è possibile impostare gli URL del negozio per ricevere notifiche server-server da AxtonPay, così come gli URL per reindirizzare l'acquirente dopo il pagamento della fattura o la sua cancellazione, così come in caso di errore.
Questi URL possono essere sovrascritti nella richiesta di creazione della fattura.
Metodi di AxtonPay API
Creazione della fattura: /api/v1/private/checkout/payment/create
Il metodo /api/v1/private/checkout/payment/create avvia la creazione della fattura.
Se ha successo, il metodo restituisce un link ('invoice_url') al quale dovresti indirizzare il cliente per il pagamento.
Parametri della propria fattura:
- time (richiesto) - POSIX timestamp (Unix time)
- amount (richiesto) - importo da pagare (il prezzo del prodotto o del servizio che il negozio vuole ricevere)
- currency (richiesto) - Codice valuta di 3 lettere secondo ISO 4217-alpha, insensibile alle maiuscole
- pms (richiesto) - metodi di pagamento visualizzati sulla pagina della fattura. Se vuoi consentire tutti i metodi di pagamento, il valore è 'all'; se vuoi consentirne solo alcuni, elenca i loro identificativi numerici separati da virgola.
- pm - identificatore del metodo di pagamento selezionato. È importante che, se viene passato il parametro 'pm', la fattura venga creata in 'modalità trasparente', cioè l'acquirente non vedrà la pagina della fattura, ma andrà direttamente al sistema di pagamento.
- extra_data - un array associativo contenente eventuali dati aggiuntivi; questi dati vengono restituiti al negozio nella loro interezza
- shop_user_id - identificatore utente nel negozio, viene restituito al negozio in forma invariata
- shop_payment_id - identificatore di pagamento nel negozio, viene restituito al negozio in forma invariata
- shop_name - nome del negozio (visualizzato sulla pagina della fattura)
- shop_payment_desc - descrizione dell'ordine (visualizzata sulla pagina della fattura)
- shop_payment_remark - le tue note su questo pagamento (questo è un campo per eventuali note sul pagamento, che AxtonPay non invia da nessuna parte; è visibile solo nell'elenco dei pagamenti; non viene inviato al negozio)
- valid_time - l'intervallo di tempo in cui la fattura può essere pagata; in secondi
- view_time - intervallo di tempo durante il quale la fattura è disponibile per la visualizzazione tramite link esterno; in secondi; il conto alla rovescia inizia dopo la fine del periodo 'valid_time'
- server_notification_method - metodo di invio di notifiche server-server riguardanti lo stato dei pagamenti al negozio; valori validi: POST, GET
Alcune impostazioni per la fattura sono impostate nella pagina delle impostazioni del checkout. Ma i valori passati nella richiesta avranno priorità su queste impostazioni.
Parametri di checkout che possono essere sovrascritti per questa fattura:
- customer_success_url - un link al quale l'acquirente verrà reindirizzato se la fattura viene pagata con successo (cioè se lo stato della fattura è 'paid' o 'overpaid').
- customer_cancel_url - un link al quale l'acquirente sarà reindirizzato se il pagamento viene annullato
- customer_fail_url - un link al quale l'acquirente verrà reindirizzato se il pagamento termina con un errore
- server_notification_url - link per inviare notifiche server-server degli stati di pagamento al negozio
Nota: Per conformarsi alla propria politica sulla privacy, di solito non è necessario includere i dati personali del cliente nelle proprietà della fattura. Ad esempio, nel parametro "shop_user_id", è meglio specificare un ID cliente astratto piuttosto che la loro email o il numero di telefono. Anche nel parametro "shop_payment_desc", è meglio non includere affatto i dati del cliente, perché loro già conoscono tutto su se stessi; invece, si possono scrivere alcune informazioni sui beni o servizi pagati, o anche semplicemente il tipo di azione, ad esempio, "Acquisto" o "Ricarica del saldo".
Tutti i riferimenti sono necessariamente trasmessi con il protocollo.
Esempio di richiesta:
<?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);
?>
Esempio di una risposta di successo quando si richiede la creazione di una fattura:
{
"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"
}
Ottenere informazioni sulla fattura: /api/v1/private/checkout/payment/get/{PID}
Per ottenere le informazioni di cui hai bisogno, chiama il metodo /api/v1/private/checkout/payment/get/{PID}, specificando l'PID della fattura alla fine dell'URL.
Parametri della richiesta:
- time (richiesto) - POSIX timestamp (Unix time)
Esempio di una riga per comporre una firma:
// Full URL: https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343 // String for signature calculation: time=1766837343
Esempio di una risposta:
{
"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"
}
}
Confronto tra importo richiesto e importo pagato
La risposta contiene diversi importi (nella valuta in cui è stata emessa la fattura):
- "amount" - importo fatturato
- "filled" - pagato parte della fattura,
- "total_filled" - quanto il cliente ha pagato in totale, comprese le commissioni.
Se "filled = amount", allora è pagato esattamente quanto deve essere.
Se "filled > amount", c'è un pagamento in eccesso.
Se "filled < amount", la fattura non è stata pagata per intero (pagamento insufficiente).
Fattura: elaborazione della notifica da AxtonPay riguardo al cambiamento di stato
Ogni volta che lo stato di una fattura cambia, AxtonPay invia una notifica a server_notification_url (usando il server_notification_method)
Dati di esempio:
{
"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"
}
In risposta a questa notifica AxtonPay si aspetta di ricevere HTTP code 200, che conferma il suo avvenuto ricevimento. Altrimenti, AxtonPay riproverà 12 volte di più a intervalli progressivamente crescenti, e poi lo stato della notifica cambia in 'error' (ma questo non influisce sullo stato della fattura stessa).
Valori di stato possibili:
- 0 - pending
- 1 - paid
- 2 - error
- 3 - cancelled by customer
- 4 - underpaid
- 5 - overpaid
- 8 - expired
Gli stati di pagamento riuscito sono 1 (paid) e 5 (overpaid); in caso di ricezione degli stessi puoi trasferire l'acquisto pagato al cliente o ricaricare il saldo. Per i pagamenti con stato 5 (overpaid), in caso di ricarica del saldo puoi ricaricare il saldo per l'importo effettivamente ricevuto, ma in caso di vendita di beni/servizi e di un importo significativo di pagamento in eccesso è consigliabile contattare il pagatore e decidere con lui come gestire l'eccesso di pagamento.
Lo stato parzialmente riuscito è 4 (underpaid); in caso di ricezione di questo stato è possibile ricaricare il saldo per l'importo del pagamento effettivamente ricevuto. Tuttavia, questo stato non può essere considerato riuscito per la vendita di beni/servizi.
Tutti gli altri stati - 0 (pending), 2 (error), 3 (canceled by customer) significano completa assenza di pagamento; in caso di ricezione degli stessi non devono essere eseguite azioni di ricarica del saldo o vendita di beni/servizi.
Verifica della firma
Per essere sicuri che la notifica sia inviata da AxtonPay esattamente è necessario verificare la firma della notifica ricevuta prima di fidarsi di essa. La verifica è simile alla firma delle proprie richieste, solo che viene aggiunto l'ultimo passaggio, quando si dovrebbe confrontare la firma calcolata con l'intestazione HTTP ricevuta 'Sign'.
I principali passaggi dopo aver ricevuto la notifica sullo stato di pagamento modificato sono i seguenti:
- prendere l'intera serie di argomenti (QUERY_STRING) dalla notifica ricevuta,
- prendi l'intero POST data (REQUEST_BODY) dalla notifica ricevuta,
- calcola la firma usando quei QUERY_STRING + REQUEST_BODY e l''Secret key' appropriato,
- confronta la firma calcolata con quella ricevuta nell'intestazione HTTP 'Sign',
- se le firme sono le stesse, la notifica è davvero arrivata da AxtonPay;
- Se le firme sono diverse, potrebbe essere un tentativo di imbrogliare da parte del pagatore.
Esempio di una riga per la generazione della firma:
// 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¤cy=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¤cy=RDD&test=0
Conferma che il negozio ha elaborato le informazioni di pagamento: /api/v1/private/checkout/payment/confirm/{PID}
Questa richiesta viene inviata a AxtonPay in risposta a una notifica ricevuta da esso. Funzionalmente, è una conferma che il negozio ha ricevuto e elaborato con successo la notifica ricevuta.
Per inviare una richiesta, chiama il metodo /api/v1/private/checkout/payment/confirm/{PID}, specificando il pid della fattura alla fine dell'URL.
Parametri della richiesta:
- time (richiesto) - POSIX timestamp (Unix time)
- status (obbligatorio, intero) - numero dello stato di pagamento per il quale il negozio invia la conferma
Se lo stato trasmesso corrisponde allo stato attuale di questa fattura nel sistema, AxtonPay risponderà con 'OK' e se non corrisponde, risponderà con un errore.
Esempio di una riga per la generazione della firma:
// 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"}
Esempio di una risposta se lo stato di pagamento attuale è lo stesso:
{
"status": "ok",
"data": "\"Paid\" status notification is confirmed"
}
Esempio di una risposta se lo stato attuale del pagamento differisce da quello trasmesso nella richiesta:
{
"status": "error",
"message": "Something went wrong"
}
Codici valuta
Le valute che possono essere utilizzate per la creazione di una fattura.
La maggior parte dei codici valuta utilizzati appartiene a valute fiat, e sono uguali a ISO 4217. Inoltre, l'elenco contiene diverse criptovalute.
| Codice | Nome | Cifre decimali | Tipo |
| BCH | Bitcoin Cash | 8 | Criptovaluta |
| BLK | Blackcoin | 8 | Criptovaluta |
| BNB | Binancecoin | 18 | Criptovaluta |
| BTC | Bitcoin | 8 | Criptovaluta |
| BTT | BitTorrent | 18 | Token crittografico |
| BUSD | Binance USD | 18 | Token crittografico |
| DAI | Dai | 18 | Token crittografico |
| DASH | Dash | 8 | Criptovaluta |
| DOGE | Dogecoin | 8 | Criptovaluta |
| ETC | Ethereum Classic | 18 | Criptovaluta |
| ETH | Ethereum | 18 | Criptovaluta |
| LTC | Litecoin | 8 | Criptovaluta |
| NLG | Gulden | 8 | Criptovaluta |
| RDD | ReddCoin | 8 | Criptovaluta |
| TRX | Tron | 6 | Criptovaluta |
| USDC | USD Coin | 6 | Token crittografico |
| USDD | Decentralized USD | 18 | Token crittografico |
| USDT | Tether USDT | 6 | Token crittografico |
| VTC | Vertcoin | 8 | Criptovaluta |
| XVG | Verge | 8 | Criptovaluta |
| AED | United Arab Emirates dirham | 2 | Valuta fiat |
| AFN | Afghan afghani | 2 | Valuta fiat |
| ALL | Albanian lek | 2 | Valuta fiat |
| AMD | Armenian dram | 2 | Valuta fiat |
| ANG | Netherlands Antillean guilder | 2 | Valuta fiat |
| AOA | Angolan kwanza | 2 | Valuta fiat |
| ARS | Argentine peso | 2 | Valuta fiat |
| AUD | Australian dollar | 2 | Valuta fiat |
| AWG | Aruban florin | 2 | Valuta fiat |
| AZN | Azerbaijani manat | 2 | Valuta fiat |
| BAM | Bosnia and Herzegovina convertible mark | 2 | Valuta fiat |
| BBD | Barbados dollar | 2 | Valuta fiat |
| BDT | Bangladeshi taka | 2 | Valuta fiat |
| BGN | Bulgarian lev | 2 | Valuta fiat |
| BHD | Bahraini dinar | 3 | Valuta fiat |
| BIF | Burundian franc | 2 | Valuta fiat |
| BMD | Bermudian dollar | 2 | Valuta fiat |
| BND | Brunei dollar | 2 | Valuta fiat |
| BOB | Boliviano | 2 | Valuta fiat |
| BRL | Brazilian real | 2 | Valuta fiat |
| BSD | Bahamian dollar | 2 | Valuta fiat |
| BTN | Bhutanese ngultrum | 2 | Valuta fiat |
| BWP | Botswana pula | 2 | Valuta fiat |
| BYN | Belarusian ruble | 2 | Valuta fiat |
| BZD | Belize dollar | 2 | Valuta fiat |
| CAD | Canadian dollar | 2 | Valuta fiat |
| CDF | Congolese franc | 2 | Valuta fiat |
| CHF | Swiss franc | 2 | Valuta fiat |
| CLP | Chilean peso | 2 | Valuta fiat |
| CNY | Renminbi (Chinese) yuan | 2 | Valuta fiat |
| COP | Colombian peso | 2 | Valuta fiat |
| CRC | Costa Rican colon | 2 | Valuta fiat |
| CUC | Cuban convertible peso | 2 | Valuta fiat |
| CUP | Cuban peso | 2 | Valuta fiat |
| CVE | Cape Verde escudo | 2 | Valuta fiat |
| CZK | Czech koruna | 2 | Valuta fiat |
| DJF | Djiboutian franc | 2 | Valuta fiat |
| DKK | Danish krone | 2 | Valuta fiat |
| DOP | Dominican peso | 2 | Valuta fiat |
| DZD | Algerian dinar | 2 | Valuta fiat |
| EGP | Egyptian pound | 2 | Valuta fiat |
| ERN | Eritrean nakfa | 2 | Valuta fiat |
| ETB | Ethiopian birr | 2 | Valuta fiat |
| EUR | Euro | 2 | Valuta fiat |
| FJD | Fiji dollar | 2 | Valuta fiat |
| FKP | Falkland Islands pound | 2 | Valuta fiat |
| GBP | Pound sterling | 2 | Valuta fiat |
| GEL | Georgian lari | 2 | Valuta fiat |
| GHS | Ghanaian cedi | 2 | Valuta fiat |
| GIP | Gibraltar pound | 2 | Valuta fiat |
| GMD | Gambian dalasi | 2 | Valuta fiat |
| GNF | Guinean franc | 0 | Valuta fiat |
| GTQ | Guatemalan quetzal | 2 | Valuta fiat |
| GYD | Guyanese dollar | 2 | Valuta fiat |
| HKD | Hong Kong dollar | 2 | Valuta fiat |
| HNL | Honduran lempira | 2 | Valuta fiat |
| HRK | Croatian kuna | 2 | Valuta fiat |
| HTG | Haitian gourde | 2 | Valuta fiat |
| HUF | Hungarian forint | 2 | Valuta fiat |
| IDR | Indonesian rupiah | 2 | Valuta fiat |
| ILS | Israeli new shekel | 2 | Valuta fiat |
| INR | Indian rupee | 2 | Valuta fiat |
| IQD | Iraqi dinar | 3 | Valuta fiat |
| IRR | Iranian rial | 2 | Valuta fiat |
| ISK | Icelandic krona | 2 | Valuta fiat |
| JMD | Jamaican dollar | 2 | Valuta fiat |
| JOD | Jordanian dinar | 3 | Valuta fiat |
| JPY | Japanese yen | 3 | Valuta fiat |
| KES | Kenyan shilling | 2 | Valuta fiat |
| KGS | Kyrgyzstani som | 2 | Valuta fiat |
| KHR | Cambodian riel | 2 | Valuta fiat |
| KMF | Comoro franc | 2 | Valuta fiat |
| KPW | North Korean won | 2 | Valuta fiat |
| KRW | South Korean won | 2 | Valuta fiat |
| KWD | Kuwaiti dinar | 3 | Valuta fiat |
| KYD | Cayman Islands dollar | 2 | Valuta fiat |
| KZT | Kazakhstani tenge | 2 | Valuta fiat |
| LAK | Lao kip | 2 | Valuta fiat |
| LBP | Lebanese pound | 2 | Valuta fiat |
| LKR | Sri Lankan rupee | 2 | Valuta fiat |
| LRD | Liberian dollar | 2 | Valuta fiat |
| LSL | Lesotho loti | 2 | Valuta fiat |
| LYD | Libyan dinar | 3 | Valuta fiat |
| MAD | Moroccan dirham | 2 | Valuta fiat |
| MDL | Moldovan leu | 2 | Valuta fiat |
| MGA | Malagasy ariary | 2 | Valuta fiat |
| MKD | Macedonian denar | 2 | Valuta fiat |
| MMK | Myanmar kyat | 2 | Valuta fiat |
| MNT | Mongolian togrog | 2 | Valuta fiat |
| MOP | Macanese pataca | 2 | Valuta fiat |
| MRU | Mauritanian ouguiya | 2 | Valuta fiat |
| MUR | Mauritian rupee | 2 | Valuta fiat |
| MVR | Maldivian rufiyaa | 2 | Valuta fiat |
| MWK | Malawian kwacha | 2 | Valuta fiat |
| MXN | Mexican peso | 2 | Valuta fiat |
| MYR | Malaysian ringgit | 2 | Valuta fiat |
| MZN | Mozambican metical | 2 | Valuta fiat |
| NAD | Namibian dollar | 2 | Valuta fiat |
| NGN | Nigerian naira | 2 | Valuta fiat |
| NIO | Nicaraguan cordoba | 2 | Valuta fiat |
| NOK | Norwegian krone | 2 | Valuta fiat |
| NPR | Nepalese rupee | 2 | Valuta fiat |
| NZD | New Zealand dollar | 2 | Valuta fiat |
| OMR | Omani rial | 3 | Valuta fiat |
| PAB | Panamanian balboa | 2 | Valuta fiat |
| PEN | Peruvian sol | 2 | Valuta fiat |
| PGK | Papua New Guinean kina | 2 | Valuta fiat |
| PHP | Philippine peso | 2 | Valuta fiat |
| PKR | Pakistani rupee | 2 | Valuta fiat |
| PLN | Polish zloty | 2 | Valuta fiat |
| PYG | Paraguayan guarani | 2 | Valuta fiat |
| QAR | Qatari riyal | 2 | Valuta fiat |
| RON | Romanian leu | 2 | Valuta fiat |
| RSD | Serbian dinar | 2 | Valuta fiat |
| RUB | Russian ruble | 2 | Valuta fiat |
| RWF | Rwandan franc | 2 | Valuta fiat |
| SAR | Saudi riyal | 2 | Valuta fiat |
| SBD | Solomon Islands dollar | 2 | Valuta fiat |
| SCR | Seychelles rupee | 2 | Valuta fiat |
| SDG | Sudanese pound | 2 | Valuta fiat |
| SEK | Swedish krona/kronor | 2 | Valuta fiat |
| SGD | Singapore dollar | 2 | Valuta fiat |
| SHP | Saint Helena pound | 2 | Valuta fiat |
| SLL | Sierra Leonean leone | 2 | Valuta fiat |
| SOS | Somali shilling | 2 | Valuta fiat |
| SRD | Surinamese dollar | 2 | Valuta fiat |
| SSP | South Sudanese pound | 2 | Valuta fiat |
| STN | Sao Tome and Pricipe dobra | 2 | Valuta fiat |
| SVC | Salvadoran colon | 2 | Valuta fiat |
| SYP | Syrian pound | 2 | Valuta fiat |
| SZL | Swazi lilangeni | 2 | Valuta fiat |
| THB | Thai baht | 2 | Valuta fiat |
| TJS | Tajikistani somoni | 2 | Valuta fiat |
| TMT | Turkmenistan manat | 2 | Valuta fiat |
| TND | Tunisian dinar | 3 | Valuta fiat |
| TOP | Tongan paanga | 2 | Valuta fiat |
| TRY | Turkish lira | 2 | Valuta fiat |
| TTD | Trinidad and Tobago dollar | 2 | Valuta fiat |
| TWD | New Taiwan dollar | 2 | Valuta fiat |
| TZS | Tanzanian shilling | 2 | Valuta fiat |
| UAH | Ukrainian hryvnia | 2 | Valuta fiat |
| UGX | Ugandan shilling | 0 | Valuta fiat |
| USD | United States dollar | 2 | Valuta fiat |
| UYU | Uruguayan peso | 2 | Valuta fiat |
| UZS | Uzbekistan som | 2 | Valuta fiat |
| VES | Venezuelan bolivar soberano | 2 | Valuta fiat |
| VND | Vietnamese dong | 2 | Valuta fiat |
| VUV | Vanuatu vatu | 0 | Valuta fiat |
| WST | Samoan tala | 2 | Valuta fiat |
| XAF | CFA franc BEAC | 3 | Valuta fiat |
| XCD | East Caribbean dollar | 2 | Valuta fiat |
| XOF | CFA franc BCEAO | 2 | Valuta fiat |
| XPF | CFP franc (franc Pacifique) | 3 | Valuta fiat |
| XTS | Codici specificamente riservati a scopi di test | 2 | Codice riservato |
| XXX | I codici assegnati alle transazioni in cui non è coinvolta valuta | 2 | Codice riservato |
| YER | Yemeni rial | 2 | Valuta fiat |
| ZAR | South African rand | 2 | Valuta fiat |
| ZMW | Zambian kwacha | 2 | Valuta fiat |
| ZWL | Zimbabwean dollar | 2 | Valuta fiat |
