AxtonPay API

Document version: 0.9

Uobičajene informacije

API krajnja točka

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

Content-type

API prihvaća HTTP zahtjeve s 2 tipa sadržaja: 'application/x-www-form-urlencoded', 'application/json'.

HTTP zaglavlje trebalo bi odgovarati sadržaju POST tijela.

Skraćenice i definicije

  • {PID} - ID računa, obično je to jedinstveni alfanumerički niz od 8 znakova.
  • Shop - Vaša web stranica koja prihvaća plaćanja putem usluge AxtonPay

Algoritam rada s API-jem

Uobičajeni redoslijed radnji za primitak uplate:

  • stvorite račun ('/api/v1/private/checkout/payment/create'), API odgovor će vratiti URL računa ('invoice_url'),
  • pošaljite kupca na ovu fakturu kako bi izvršio uplatu,
  • pričekajte obavijesti poslužitelja AxtonPay, koje će dolaziti na 'server_notification_url',
  • prihvaćanjem bilo kakve obavijesti od AxtonPay, provjerite valjanost njegovog potpisa i po mogućnosti pošaljite potvrdu primitka AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • ako se status računa promijeni, izvršite radnje odgovarajuće tom statusu (npr. zatražite potpune informacije o računu, pošaljite robu, kreirajte tiket za tim za podršku itd.).

Ako postavite praznu ili nevažeću 'server_notification_url' prilikom izrade računa, usluga neće moći slati obavijesti o promjenama statusa; u takvim slučajevima trebali biste sami provjeravati račun s vremena na vrijeme ('/api/v1/private/checkout/payment/get/{PID}').

Odobrenje zahtjeva

Za autorizaciju zahtjeva potrebno je izračunati hash iz niza koji je oblikovan na poseban način. Niz se sastoji od povezivanja (spajanja) argumenata URL-a (QUERY_STRING) i tijela POST zahtjeva (REQUEST_BODY). Važno je da se svi dijelovi uzmu točno u obliku u kojem će biti poslani serveru. Argumenti URL-a (QUERY_STRING) trebaju se uzeti iz URL-a kao jedna linija, bez promjene redoslijeda argumenata i bez izostavljanja bilo kojeg elementa. Tijelo POST zahtjeva (REQUEST_BODY) također se treba koristiti bez ikakvih izmjena, uključujući da se iz njega ne uklanjaju navodnici, razmaci, zagrade ili prijelomi linija.

U slučajevima praznog POST tijela zahtjeva i u slučaju praznih URL argumenata, ta komponenta će jednostavno biti prazan niz.

Redoslijed podataka u zahtjevu za potpisivanje: QUERY_STRING prvo, zatim POST podaci. Ne biste trebali umetati nikakve spojne znakove između njih, samo spojite dva tekstualna niza.

Još jednom, svaki simbol je značajan. Ne biste smjeli dodavati niti uklanjati čak ni razmak ili znak novog retka. Samo koristite sirove podatke primljene od servera.

SHA-256 hash s ključem 'Secret key' se uzima iz rezultirajućeg niza i koristi kao drugi argument funkcije hash_hmac().

Obavezno je proslijediti 'time' parametar koji sadrži trenutni POSIX timestamp (Unix time).

Ovaj potpis važi 24 sata. Ako vrijednost 'time' parametra odstupa od trenutnog vremena servera za više od 24 sata (bilo unaprijed ili unatrag), zahtjev će ne uspjeti čak i ako je potpis izračunat bez pogrešaka.

Ako trgovački panel prihvati zahtjev s nekim potpisom, taj se potpis ne može ponovno koristiti, čak ni za slanje zahtjeva s istim parametrima (to uključuje parametar 'time').

Dobiveni hash se prenosi u HTTP zaglavlju 'Sign'.

Osim izračunate potpisa, zahtjev također mora sadržavati 'Api-Key' zaglavlje koje sadrži korišteni API ključ. Primjer:

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

Možete potpisati zahtjev poslan AxtonPay s bilo kojim valjanim ključem koji pripada ovom checkoutu. Međutim, AxtonPay uvijek koristi ključ koji ste odabrali u trgovinskoj konzoli.

Primjer izračuna potpisa:

/* 
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'
*/

Obratite pažnju na razmake i prijelome reda u drugom primjeru:

/* 
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"
}' 
*/

Python primjer sastavljanja niza za izračun potpisa:

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

Parametri

API prihvaća sve parametre i u QUERY_STRING i u tijelu POST zahtjeva.

Buleove varijable

API očekuje dobivanje '0' ili '1' u Boolean varijablama, ali zbog implicitne konverzije tipova, bilo koji tekstualni niz će se tretirati kao '1', čak i riječ 'false'. Dakle, da biste eksplicitno postavili vrijednost 'FALSE' za Boolean varijablu, morate joj proslijediti ili vrijednost '0' ili prazni niz.

Decimalni separator

U brojevima se kao decimalni separator koristi samo decimalna točka.

Velika i mala slova u parametrima

S nekoliko iznimki, svi parametri razlikuju velika i mala slova.

URL za povratni poziv

U administratorskoj ploči AxtonPay, na stranici postavki naplate moguće je postaviti URL-ove trgovine za primanje obavijesti poslužitelj-poslužitelj od AxtonPay, kao i URL-ove za preusmjeravanje kupca nakon plaćanja računa ili njegove otkazivanja, kao i u slučaju pogreške.

Ovi se URL-ovi mogu prebrisati u zahtjevu za izradu računa.

Metode AxtonPay API-ja

Izrada računa: /api/v1/private/checkout/payment/create

Metoda /api/v1/private/checkout/payment/create pokreće izradu računa.

Ako je uspješan, metoda vraća poveznicu ('invoice_url') na koju biste trebali uputiti kupca za plaćanje.

Vlastiti parametri računa:

  • time (obavezno) - POSIX timestamp (Unix time)
  • amount (obavezno) - iznos koji treba platiti (cijena proizvoda ili usluge koju trgovina želi primiti)
  • currency (obavezno) - 3-znamenkasti kôd valute prema ISO 4217-alpha, neosjetljivo na velika i mala slova
  • pms (obavezno) - načini plaćanja prikazani na stranici računa. Ako želite omogućiti sve načine plaćanja, vrijednost je 'all'; ako želite omogućiti samo neke od njih, navedite njihove numeričke identifikatore odvojene zarezom.
  • pm - identifikator odabrane metode plaćanja. Važno je da, ako se proslijedi parametar 'pm', faktura će biti kreirana u 'transparentnom načinu', tj. kupac neće vidjeti stranicu s fakturom, već će odmah ići na sustav plaćanja.
  • extra_data - asocijativni niz koji sadrži sve dodatne podatke; ti se podaci u cijelosti vraćaju u trgovinu
  • shop_user_id - identifikator korisnika u trgovini, vraća se u trgovinu u nepromijenjenom obliku
  • shop_payment_id - identifikator plaćanja u trgovini, vraća se u trgovinu u nepromijenjenom obliku
  • shop_name - naziv trgovine (prikazan na stranici računa)
  • shop_payment_desc - opis narudžbe (prikazan na stranici računa)
  • shop_payment_remark - vaše bilješke o ovom plaćanju (ovo je polje za bilo kakve bilješke koje imate o plaćanju, koje AxtonPay nigdje ne prenosi; vidljivo je samo u popisu plaćanja; ne vraća se natrag u trgovinu)
  • valid_time - vrijeme u kojem se račun može platiti; u sekundama
  • view_time - vremenski interval tijekom kojeg je račun dostupan za pregled putem vanjskog linka; u sekundama; odbrojavanje počinje nakon završetka 'valid_time' razdoblja
  • server_notification_method - metoda slanja obavijesti server-server o statusima plaćanja trgovini; važeće vrijednosti: POST, GET

Neka podešavanja za račun postavljena su na stranici postavki naplate. No, vrijednosti poslane u zahtjevu imat će prednost nad tim postavkama.

Parametri naplate koji se mogu nadjačati za ovu fakturu:

  • customer_success_url - link na koji će kupac biti preusmjeren ako je račun uspješno plaćen (tj. ako je status računa 'paid' ili 'overpaid').
  • customer_cancel_url - poveznica na koju će kupac biti preusmjeren ako je plaćanje otkazano
  • customer_fail_url - veza na koju će kupac biti preusmjeren ako plaćanje završi s pogreškom
  • server_notification_url - link za slanje notifikacija o statusu plaćanja server-server trgovini

Napomena: Kako biste se pridržavali vlastite politike privatnosti, obično nije potrebno uključivati osobne podatke vašeg kupca u svojstva računa. Na primjer, u parametru "shop_user_id" bolje je navesti apstraktni ID kupca umjesto njihove e-mail adrese ili broja telefona. Također, u "shop_payment_desc" je bolje uopće ne uključivati podatke o kupcu, jer oni već sve znaju o sebi; umjesto toga možete napisati neke informacije o plaćenoj robi ili uslugama, ili čak samo navesti vrstu radnje, na primjer, "Kupnja" ili "Dopuna stanja".

Sve reference nužno se prenose putem protokola.

Primjer zahtjeva:

<?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);
?>

Primjer uspješnog odgovora pri traženju izrade računa:

{
    "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"
}

Dobivanje informacija o računu: /api/v1/private/checkout/payment/get/{PID}

Da biste dobili informacije koje trebate, pozovite metodu /api/v1/private/checkout/payment/get/{PID}, navodeći PID računa na kraju URL-a.

Parametri upita:

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

Primjer retka za sastavljanje potpisa:

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

// String for signature calculation: 
time=1766837343

Primjer odgovora:

{
    "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"
    }
}

Usporedba traženog iznosa i isplaćenog iznosa

Odgovor sadrži nekoliko različitih iznosa (u valuti u kojoj je faktura izdata):

  • "amount" - fakturirani iznos,
  • "filled" - platio dio računa,
  • "total_filled" - koliko je klijent ukupno platio, uključujući provizije.

Ako "filled = amount", tada je plaćeno točno onoliko koliko treba biti.

Ako "filled > amount", postoji preplaćivanje.

Ako "filled < amount", račun nije u potpunosti plaćen (nedostatno plaćanje).

Račun: obrada obavijesti od AxtonPay o promjeni statusa

Svaki put kada se promijeni status računa, AxtonPay šalje obavijest server_notification_url (koristeći server_notification_method)

Primjer podataka:

{
    "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"
}

Kao odgovor na ovu obavijest AxtonPay očekuje primiti HTTP code 200, što potvrđuje njezino uspješno primanje. U suprotnom, AxtonPay će pokušati još 12 puta u postupno rastućim intervalima, a zatim se status obavijesti mijenja u 'error' (ali to ne utječe na status same fakture).

Moguće vrijednosti statusa:

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

Uspješni statusi plaćanja su 1 (paid) i 5 (overpaid); u slučaju njihovog primitka možete prenijeti plaćenu kupnju na kupca ili nadopuniti saldo. Za plaćanja sa statusom 5 (overpaid), u slučaju nadopune salda možete nadopuniti saldo za iznos stvarno primljenog plaćanja, ali u slučaju prodaje roba/usluga i značajnog iznosa preplaćenja preporučuje se kontaktirati platitelja i dogovoriti s njim kako postupiti s preplaćenim iznosom.

Djelomično uspješan status je 4 (underpaid); u slučaju primanja ovog statusa moguće je nadopuniti stanje za iznos stvarno primljene uplate. Međutim, ovaj status se ne može smatrati uspješnim za prodaju roba/usluga.

Svi ostali statusi - 0 (pending), 2 (error), 3 (canceled by customer) znače potpunu odsutnost plaćanja; u slučaju njihovog primanja ne smiju se poduzimati nikakve radnje na nadopuni stanja ili prodaji robe/usluga.

Provjera potpisa

Da biste bili sigurni da je obavijest poslana od AxtonPaya, potrebno je provjeriti potpis primljene obavijesti prije nego što joj vjerujete. Provjera je slična potpisivanju vlastitih zahtjeva, samo se dodaje posljednji korak, kada trebate usporediti izračunati potpis s primljenim HTTP zaglavljem 'Sign'.

Glavni koraci nakon primitka obavijesti o promijenjenom statusu plaćanja su sljedeći:

  • uzmite cijeli niz argumenata (QUERY_STRING) iz primljene obavijesti,
  • uzmi cijeli POST data (REQUEST_BODY) iz primljene obavijesti,
  • izračunajte potpis koristeći te QUERY_STRING + REQUEST_BODY i odgovarajući 'Secret key',
  • uporedi izračunati potpis s onim koji je primljen u HTTP zaglavlju 'Sign',
  • ako su potpisi isti, obavijest je stvarno stigla od AxtonPay;
  • ako su potpisi različiti, to može biti pokušaj prijevare od strane platitelja.

Primjer linije za generiranje potpisa:

// 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

Potvrda da je trgovina obradila podatke o plaćanju: /api/v1/private/checkout/payment/confirm/{PID}

Ovaj zahtjev šalje se AxtonPay kao odgovor na obavijest primljenu od njega. Funkcionalno, to je potvrda da je trgovina uspješno primila i obradila primljenu obavijest.

Za slanje zahtjeva, pozovite metodu /api/v1/private/checkout/payment/confirm/{PID}, navodeći pid računa na kraju URL-a.

Parametri zahtjeva:

  • time (obavezno) - POSIX timestamp (Unix time)
  • status (obavezno, cijeli broj) - broj statusa plaćanja za koji trgovina šalje potvrdu

Ako preneseni status odgovara trenutnom statusu ove fakture u sustavu, AxtonPay će odgovoriti s 'OK', a ako ne odgovara, odgovorit će s pogreškom.

Primjer linije za generiranje potpisa:

// 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"}

Primjer odgovora ako je trenutni status plaćanja isti:

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

Primjer odgovora ako trenutačni status plaćanja razlikuje od onog prenesenog u zahtjevu:

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

Valutni kodovi

Valute koje se mogu koristiti za izradu računa.

Većina korištenih valutnih kodova pripada fiat valutama i jednaka su ISO 4217. Također, popis sadrži nekoliko kriptovaluta.

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