Document version: 0.9
Обща информация
API крайна точка
https://mp.axtonpay.com/api/v1/private/checkout
Content-type
API приема HTTP заявки с 2 типа съдържание: 'application/x-www-form-urlencoded', 'application/json'.
Хедърът HTTP трябва да пасне на съдържанието на тялото POST.
Съкратени форми и определения
- {PID} - ИД на фактурата, обикновено това е уникалната 8-символна буквено-цифрова последователност.
- Shop - Вашият уебсайт, който приема плащания чрез услугата AxtonPay
Алгоритъм за работа с API
Обичайна последователност на действия за получаване на плащане:
- създайте фактура ('/api/v1/private/checkout/payment/create'), отговорът от API ще върне URL адреса на фактурата ('invoice_url'),
- изпратете на купувача тази фактура, за да извърши плащането,
- чакай уведомления от сървъра AxtonPay, които ще идват на 'server_notification_url',
- при получаване на всяко уведомление от AxtonPay, проверете валидността на неговия подпис и по възможност изпратете потвърждение за получаване на AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
- ако статусът на фактурата бъде променен, изпълнете действия, съответстващи на този статус (например, поискайте пълна информация за фактурата, изпратете стоките, създайте билет за екипа за поддръжка и т.н.).
Ако зададете празен или невалиден 'server_notification_url' при създаване на фактура, услугата не може да изпраща уведомления за промени в статуса; в такива случаи трябва да проверявате фактурата сами на определен интервал ('/api/v1/private/checkout/payment/get/{PID}').
Упълномощаване на заявки
За да се упълномощи заявка, е необходимо да се изчисли хеш от низ, формиран по специален начин. Низът се състои, като се свържат (залепят заедно) аргументите от URL-а (QUERY_STRING) и тялото на POST заявката (REQUEST_BODY). Важно е всички компоненти да се вземат точно в същата форма, в която ще бъдат предадени на сървъра. Аргументите от URL-а (QUERY_STRING) трябва да се вземат от URL-а като един ред, без да се променя редът на аргументите и без да се пропускат каквито и да е елементи. Тялото на POST заявката (REQUEST_BODY) също трябва да се използва без никакви промени, включително не премахвайте от него кавички, интервали, скоби, прекъсвания на редове.
В случаите на празно POST тяло на заявката и в случай на празни URL аргументи, този компонент просто ще бъде празен низ.
Последователността на данните в заявката за подпис: QUERY_STRING първо, след това POST данните. Не трябва да вкарвате никакви свързващи знаци между тях, просто обединете двата текстови низа.
Още веднъж, всеки символ е значим. Не трябва да добавяте или премахвате дори интервал или символ на нов ред. Просто използвайте суровите данни, получени от сървъра.
Хеш SHA-256 с ключ 'Secret key' се взема от получения низ и се използва като втори аргумент на функцията hash_hmac().
Задължително е да се предаде параметърът 'time', съдържащ текущия POSIX timestamp (Unix time).
Този подпис е валиден за 24 часа. Ако стойността на параметъра 'time' се различава от текущото време на сървъра с повече от 24 часа (напред или назад), заявката ще се провали, дори ако подписът е изчислен без грешки.
Ако търговският панел е приел заявка с някакъв подпис, този подпис не може да се използва отново, дори за изпращане на заявката със същите параметри (това включва параметъра 'time').
Полученият хеш се предава в заглавката HTTP 'Sign'.
В допълнение към изчисления подпис, заявката трябва също да съдържа 'Api-Key' заглавка, съдържаща използвания API ключ. Пример:
$headers = [
'Api-Key: ' . $the_api_key,
'Sign: ' . $signature_sha256
];
Можете да подпишете заявката, изпратена до AxtonPay, с всеки валиден ключ, който принадлежи на това плащане. Въпреки това, AxtonPay винаги използва ключа, който сте избрали в търговския панел.
Пример за изчисляване на подпис:
/* 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' */
Обърнете внимание на интервалите и прекъсванията на редове в друг пример:
/*
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 пример за съставяне на низ за изчисляване на подпис:
string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'
Параметри
API-то приема всички параметри както в QUERY_STRING, така и в тялото на POST заявката.
Булеви променливи
API-то очаква да получи '0' или '1' в Булеви променливи, но поради неявно преобразуване на типове, всеки текстов низ ще бъде третиран като '1', дори думата 'false'. Следователно, за да зададете изрично стойност 'FALSE' на Булева променлива, трябва да ѝ предадете или стойността '0', или празен низ.
Десетичен разделител
Само десетичната точка се използва като десетичен разделител в числата.
Главни и малки букви в параметрите
С няколко изключения, всички параметри са с чувствителност към малки и главни букви.
URL за обратно повикване
В административния панел на AxtonPay, на страницата с настройки на плащанията, е възможно да се зададат URL адреси на магазина за получаване на известия сървър-сървър от AxtonPay, както и URL адреси за пренасочване на купувача след плащане на фактура или нейното анулиране, както и в случай на грешка.
Тези URL адреси могат да бъдат заменени в заявката за създаване на фактура.
Методи на AxtonPay API
Създаване на фактура: /api/v1/private/checkout/payment/create
Методът /api/v1/private/checkout/payment/create инициира създаването на фактура.
Ако е успешен, методът връща линк ('invoice_url'), към който трябва да насочите клиента за плащане.
Собствени параметри на фактурата:
- time (задължително) - POSIX timestamp (Unix time)
- amount (задължително) - сумата за плащане (цената на продукта или услугата, която магазинът иска да получи)
- currency (задължително) - 3-буквен код на валута според ISO 4217-alpha, без значение на големите и малките букви
- pms (задължително) - методи на плащане, показани на страницата на фактурата. Ако искате да разрешите всички методи на плащане, стойността е 'all'; ако искате да разрешите само някои от тях, изброите техните числови идентификатори, разделени със запетая.
- pm - идентификатор на избрания метод на плащане. Важно е, че ако се предаде параметърът 'pm', фактурата ще бъде създадена в 'прозрачен режим', т.е. купувачът няма да види страницата на фактурата, а ще отиде директно в платежната система.
- extra_data - асоциативен масив, съдържащ всякакви допълнителни данни; тези данни се връщат на хранилището изцяло
- shop_user_id - идентификатор на потребителя в магазина, той се връща в магазина в непроменена форма
- shop_payment_id - идентификатор на плащането в магазина, той се връща в магазина в неизменена форма
- shop_name - име на магазина (показва се на страницата на фактурата)
- shop_payment_desc - описание на поръчката (показва се на страница с фактурата)
- shop_payment_remark - вашите бележки за този платеж (това е поле за каквито и да е бележки относно плащането, които AxtonPay не се предават никъде; те са видими само в списъка с плащания; не се връщат в магазина)
- valid_time - времевият интервал, в който фактурата може да бъде платена; в секунди
- view_time - времеви интервал, през който фактурата е достъпна за преглед чрез външен линк; в секунди; обратното броене започва след края на периода 'valid_time'
- server_notification_method - метод за изпращане на уведомления от сървър до сървър за статусите на плащанията към магазина; валидни стойности: POST, GET
Някои настройки за фактурата са зададени на страницата с настройки за плащане. Но стойностите, предадени в заявката, ще имат предимство пред тези настройки.
Параметри на плащането, които могат да бъдат пренаписани за тази фактура:
- customer_success_url - връзка, към която купувачът ще бъде пренасочен, ако фактурата бъде успешно платена (т.е. ако статусът на фактурата е 'paid' или 'overpaid').
- customer_cancel_url - връзка, към която купувачът ще бъде пренасочен, ако плащането бъде отменено
- customer_fail_url - връзка, към която купувачът ще бъде пренасочен, ако плащането завърши с грешка
- server_notification_url - връзка за изпращане на уведомления от сървър към сървър за статуса на плащанията към магазина
Забележка: За да спазите собствената си политика за поверителност, обикновено не е необходимо да включвате личните данни на клиента в свойствата на фактурата. Например, в параметъра "shop_user_id" е по-добре да зададете абстрактен идентификатор на клиента, вместо техния имейл или телефонен номер. Също така в "shop_payment_desc" е по-добре изобщо да не включвате данни за клиента, тъй като те вече знаят всичко за себе си; вместо това можете да напишете някаква информация за платените стоки или услуги, или дори просто да напишете типа на действието, например „Покупка“ или „Добавяне на баланс“.
Всички препратки задължително се предават с протокола.
Пример за заявка:
<?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);
?>
Пример за успешен отговор при заявка за създаване на фактура:
{
"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"
}
Получаване на информация за фактура: /api/v1/private/checkout/payment/get/{PID}
За да получите необходимата информация, извикайте метода /api/v1/private/checkout/payment/get/{PID}, като посочите PID на фактурата в края на URL адреса.
Параметри на заявката:
- time (задължително) - POSIX timestamp (Unix time)
Пример за ред за съставяне на подпис:
// Full URL: https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343 // String for signature calculation: time=1766837343
Пример за отговор:
{
"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"
}
}
Сравнение на поисканата сума и платената сума
Отговорът съдържа няколко различни суми (във валутата, в която е издаден фактурът):
- "amount" - фактурирана сума,
- "filled" - платена част от фактурата,
- "total_filled" - колко клиентът е платил общо, включително комисионите.
Ако "filled = amount", тогава се плаща точно колкото е необходимо.
Ако "filled > amount", има преплащане.
Ако "filled < amount", фактурата не е платена изцяло (недоплащане).
Фактура: обработка на уведомление от AxtonPay за промяна на статуса
Всеки път, когато статусът на фактурата се променя, AxtonPay изпраща известие на server_notification_url (използвайки server_notification_method)
Примери за данни:
{
"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"
}
В отговор на това известие AxtonPay очаква да получи HTTP code 200, което потвърждава успешното му приемане. В противен случай, AxtonPay ще опита отново още 12 пъти на постепенно увеличаващи се интервали, след което статусът на известието се променя на 'error' (но това не влияе на статуса на самата фактура).
Възможни стойности на статус:
- 0 - pending
- 1 - paid
- 2 - error
- 3 - cancelled by customer
- 4 - underpaid
- 5 - overpaid
- 8 - expired
Успешните статуси на плащане са 1 (paid) и 5 (overpaid); в случай на тяхното получаване можете да прехвърлите платената покупка на клиента или да заредите баланса. За плащания със статус 5 (overpaid), в случай на зареждане на баланса можете да заредите баланса със сумата на действително полученото плащане, но при продажба на стоки/услуги и значителна сума на презаплащане е препоръчително да се свържете с платеца и да решите с него как да постъпите с презаплащането.
Статус „частично успешен“ е 4 (underpaid); в случай на получаване на този статус е възможно да се презареди балансът с размера на фактически полученото плащане. Въпреки това, този статус не може да се счита за успешен при продажба на стоки/услуги.
Всички останали стойности - 0 (pending), 2 (error), 3 (canceled by customer) означават пълно отсъствие на плащане; в случай на тяхното получаване не трябва да се извършват действия по допълване на баланса или продажба на стоки/услуги.
Проверка на подпис
За да сте сигурни, че уведомлението е изпратено точно от AxtonPay, е необходимо да проверите подписа на полученото уведомление, преди да му се доверите. Проверката е подобна на подписването на собствените ви заявки, само че се добавя последната стъпка, когато трябва да сравните изчисления подпис с получения HTTP хедър 'Sign'.
Основните стъпки след получаване на уведомление за променения статус на плащането са следните:
- вземете целия низ от аргументи (QUERY_STRING) от полученото известие,
- вземете целия POST data (REQUEST_BODY) от полученото известие,
- изчислете подписа, използвайки тези QUERY_STRING + REQUEST_BODY и подходящия 'Secret key',
- сравнете изчисления подпис с този, който е получен в HTTP заглавката 'Sign',
- ако подписите са същите, уведомлението наистина е дошло от AxtonPay;
- ако подписите са различни, това може да е опит за измама от страна на платеца.
Пример за ред за генериране на подпис:
// 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
Потвърждение, че магазинът е обработил информацията за плащането: /api/v1/private/checkout/payment/confirm/{PID}
Тази заявка се изпраща до AxtonPay в отговор на получено от него уведомление. Функционално, това е потвърждение, че магазинът е успешно получил и обработил полученото уведомление.
За да изпратите заявка, извикайте метода /api/v1/private/checkout/payment/confirm/{PID}, като посочите pid на фактурата в края на URL адреса.
Параметри на заявката:
- time (задължително) - POSIX timestamp (Unix time)
- status (задължително, цяло число) - номер на статус на плащане, за който магазинът изпраща потвърждение
Ако пренесеният статус съвпада с текущия статус на тази фактура в системата, AxtonPay ще отговори с 'OK', а ако не съвпада, ще отговори с грешка.
Пример за ред за генериране на подпис:
// 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"}
Пример за отговор, ако текущият статус на плащането е същият:
{
"status": "ok",
"data": "\"Paid\" status notification is confirmed"
}
Пример за отговор, ако текущият статус на плащане се различава от този, изпратен в заявката:
{
"status": "error",
"message": "Something went wrong"
}
Валутни кодове
Валутите, които могат да се използват за създаване на фактура.
Повечето използвани валутни кодове принадлежат на фиатни валути и са равни на ISO 4217. Списъкът също така съдържа няколко криптовалути.
| Код | Име | Десетични цифри | Тип |
| BCH | Bitcoin Cash | 8 | Криптовалута |
| BLK | Blackcoin | 8 | Криптовалута |
| BNB | Binancecoin | 18 | Криптовалута |
| BTC | Bitcoin | 8 | Криптовалута |
| BTT | BitTorrent | 18 | Крипто токен |
| BUSD | Binance USD | 18 | Крипто токен |
| DAI | Dai | 18 | Крипто токен |
| DASH | Dash | 8 | Криптовалута |
| DOGE | Dogecoin | 8 | Криптовалута |
| ETC | Ethereum Classic | 18 | Криптовалута |
| ETH | Ethereum | 18 | Криптовалута |
| LTC | Litecoin | 8 | Криптовалута |
| NLG | Gulden | 8 | Криптовалута |
| RDD | ReddCoin | 8 | Криптовалута |
| TRX | Tron | 6 | Криптовалута |
| USDC | USD Coin | 6 | Крипто токен |
| USDD | Decentralized USD | 18 | Крипто токен |
| USDT | Tether USDT | 6 | Крипто токен |
| VTC | Vertcoin | 8 | Криптовалута |
| XVG | Verge | 8 | Криптовалута |
| AED | United Arab Emirates dirham | 2 | Фиатна валута |
| AFN | Afghan afghani | 2 | Фиатна валута |
| ALL | Albanian lek | 2 | Фиатна валута |
| AMD | Armenian dram | 2 | Фиатна валута |
| ANG | Netherlands Antillean guilder | 2 | Фиатна валута |
| AOA | Angolan kwanza | 2 | Фиатна валута |
| ARS | Argentine peso | 2 | Фиатна валута |
| AUD | Australian dollar | 2 | Фиатна валута |
| AWG | Aruban florin | 2 | Фиатна валута |
| AZN | Azerbaijani manat | 2 | Фиатна валута |
| BAM | Bosnia and Herzegovina convertible mark | 2 | Фиатна валута |
| BBD | Barbados dollar | 2 | Фиатна валута |
| BDT | Bangladeshi taka | 2 | Фиатна валута |
| BGN | Bulgarian lev | 2 | Фиатна валута |
| BHD | Bahraini dinar | 3 | Фиатна валута |
| BIF | Burundian franc | 2 | Фиатна валута |
| BMD | Bermudian dollar | 2 | Фиатна валута |
| BND | Brunei dollar | 2 | Фиатна валута |
| BOB | Boliviano | 2 | Фиатна валута |
| BRL | Brazilian real | 2 | Фиатна валута |
| BSD | Bahamian dollar | 2 | Фиатна валута |
| BTN | Bhutanese ngultrum | 2 | Фиатна валута |
| BWP | Botswana pula | 2 | Фиатна валута |
| BYN | Belarusian ruble | 2 | Фиатна валута |
| BZD | Belize dollar | 2 | Фиатна валута |
| CAD | Canadian dollar | 2 | Фиатна валута |
| CDF | Congolese franc | 2 | Фиатна валута |
| CHF | Swiss franc | 2 | Фиатна валута |
| CLP | Chilean peso | 2 | Фиатна валута |
| CNY | Renminbi (Chinese) yuan | 2 | Фиатна валута |
| COP | Colombian peso | 2 | Фиатна валута |
| CRC | Costa Rican colon | 2 | Фиатна валута |
| CUC | Cuban convertible peso | 2 | Фиатна валута |
| CUP | Cuban peso | 2 | Фиатна валута |
| CVE | Cape Verde escudo | 2 | Фиатна валута |
| CZK | Czech koruna | 2 | Фиатна валута |
| DJF | Djiboutian franc | 2 | Фиатна валута |
| DKK | Danish krone | 2 | Фиатна валута |
| DOP | Dominican peso | 2 | Фиатна валута |
| DZD | Algerian dinar | 2 | Фиатна валута |
| EGP | Egyptian pound | 2 | Фиатна валута |
| ERN | Eritrean nakfa | 2 | Фиатна валута |
| ETB | Ethiopian birr | 2 | Фиатна валута |
| EUR | Euro | 2 | Фиатна валута |
| FJD | Fiji dollar | 2 | Фиатна валута |
| FKP | Falkland Islands pound | 2 | Фиатна валута |
| GBP | Pound sterling | 2 | Фиатна валута |
| GEL | Georgian lari | 2 | Фиатна валута |
| GHS | Ghanaian cedi | 2 | Фиатна валута |
| GIP | Gibraltar pound | 2 | Фиатна валута |
| GMD | Gambian dalasi | 2 | Фиатна валута |
| GNF | Guinean franc | 0 | Фиатна валута |
| GTQ | Guatemalan quetzal | 2 | Фиатна валута |
| GYD | Guyanese dollar | 2 | Фиатна валута |
| HKD | Hong Kong dollar | 2 | Фиатна валута |
| HNL | Honduran lempira | 2 | Фиатна валута |
| HRK | Croatian kuna | 2 | Фиатна валута |
| HTG | Haitian gourde | 2 | Фиатна валута |
| HUF | Hungarian forint | 2 | Фиатна валута |
| IDR | Indonesian rupiah | 2 | Фиатна валута |
| ILS | Israeli new shekel | 2 | Фиатна валута |
| INR | Indian rupee | 2 | Фиатна валута |
| IQD | Iraqi dinar | 3 | Фиатна валута |
| IRR | Iranian rial | 2 | Фиатна валута |
| ISK | Icelandic krona | 2 | Фиатна валута |
| JMD | Jamaican dollar | 2 | Фиатна валута |
| JOD | Jordanian dinar | 3 | Фиатна валута |
| JPY | Japanese yen | 3 | Фиатна валута |
| KES | Kenyan shilling | 2 | Фиатна валута |
| KGS | Kyrgyzstani som | 2 | Фиатна валута |
| KHR | Cambodian riel | 2 | Фиатна валута |
| KMF | Comoro franc | 2 | Фиатна валута |
| KPW | North Korean won | 2 | Фиатна валута |
| KRW | South Korean won | 2 | Фиатна валута |
| KWD | Kuwaiti dinar | 3 | Фиатна валута |
| KYD | Cayman Islands dollar | 2 | Фиатна валута |
| KZT | Kazakhstani tenge | 2 | Фиатна валута |
| LAK | Lao kip | 2 | Фиатна валута |
| LBP | Lebanese pound | 2 | Фиатна валута |
| LKR | Sri Lankan rupee | 2 | Фиатна валута |
| LRD | Liberian dollar | 2 | Фиатна валута |
| LSL | Lesotho loti | 2 | Фиатна валута |
| LYD | Libyan dinar | 3 | Фиатна валута |
| MAD | Moroccan dirham | 2 | Фиатна валута |
| MDL | Moldovan leu | 2 | Фиатна валута |
| MGA | Malagasy ariary | 2 | Фиатна валута |
| MKD | Macedonian denar | 2 | Фиатна валута |
| MMK | Myanmar kyat | 2 | Фиатна валута |
| MNT | Mongolian togrog | 2 | Фиатна валута |
| MOP | Macanese pataca | 2 | Фиатна валута |
| MRU | Mauritanian ouguiya | 2 | Фиатна валута |
| MUR | Mauritian rupee | 2 | Фиатна валута |
| MVR | Maldivian rufiyaa | 2 | Фиатна валута |
| MWK | Malawian kwacha | 2 | Фиатна валута |
| MXN | Mexican peso | 2 | Фиатна валута |
| MYR | Malaysian ringgit | 2 | Фиатна валута |
| MZN | Mozambican metical | 2 | Фиатна валута |
| NAD | Namibian dollar | 2 | Фиатна валута |
| NGN | Nigerian naira | 2 | Фиатна валута |
| NIO | Nicaraguan cordoba | 2 | Фиатна валута |
| NOK | Norwegian krone | 2 | Фиатна валута |
| NPR | Nepalese rupee | 2 | Фиатна валута |
| NZD | New Zealand dollar | 2 | Фиатна валута |
| OMR | Omani rial | 3 | Фиатна валута |
| PAB | Panamanian balboa | 2 | Фиатна валута |
| PEN | Peruvian sol | 2 | Фиатна валута |
| PGK | Papua New Guinean kina | 2 | Фиатна валута |
| PHP | Philippine peso | 2 | Фиатна валута |
| PKR | Pakistani rupee | 2 | Фиатна валута |
| PLN | Polish zloty | 2 | Фиатна валута |
| PYG | Paraguayan guarani | 2 | Фиатна валута |
| QAR | Qatari riyal | 2 | Фиатна валута |
| RON | Romanian leu | 2 | Фиатна валута |
| RSD | Serbian dinar | 2 | Фиатна валута |
| RUB | Russian ruble | 2 | Фиатна валута |
| RWF | Rwandan franc | 2 | Фиатна валута |
| SAR | Saudi riyal | 2 | Фиатна валута |
| SBD | Solomon Islands dollar | 2 | Фиатна валута |
| SCR | Seychelles rupee | 2 | Фиатна валута |
| SDG | Sudanese pound | 2 | Фиатна валута |
| SEK | Swedish krona/kronor | 2 | Фиатна валута |
| SGD | Singapore dollar | 2 | Фиатна валута |
| SHP | Saint Helena pound | 2 | Фиатна валута |
| SLL | Sierra Leonean leone | 2 | Фиатна валута |
| SOS | Somali shilling | 2 | Фиатна валута |
| SRD | Surinamese dollar | 2 | Фиатна валута |
| SSP | South Sudanese pound | 2 | Фиатна валута |
| STN | Sao Tome and Pricipe dobra | 2 | Фиатна валута |
| SVC | Salvadoran colon | 2 | Фиатна валута |
| SYP | Syrian pound | 2 | Фиатна валута |
| SZL | Swazi lilangeni | 2 | Фиатна валута |
| THB | Thai baht | 2 | Фиатна валута |
| TJS | Tajikistani somoni | 2 | Фиатна валута |
| TMT | Turkmenistan manat | 2 | Фиатна валута |
| TND | Tunisian dinar | 3 | Фиатна валута |
| TOP | Tongan paanga | 2 | Фиатна валута |
| TRY | Turkish lira | 2 | Фиатна валута |
| TTD | Trinidad and Tobago dollar | 2 | Фиатна валута |
| TWD | New Taiwan dollar | 2 | Фиатна валута |
| TZS | Tanzanian shilling | 2 | Фиатна валута |
| UAH | Ukrainian hryvnia | 2 | Фиатна валута |
| UGX | Ugandan shilling | 0 | Фиатна валута |
| USD | United States dollar | 2 | Фиатна валута |
| UYU | Uruguayan peso | 2 | Фиатна валута |
| UZS | Uzbekistan som | 2 | Фиатна валута |
| VES | Venezuelan bolivar soberano | 2 | Фиатна валута |
| VND | Vietnamese dong | 2 | Фиатна валута |
| VUV | Vanuatu vatu | 0 | Фиатна валута |
| WST | Samoan tala | 2 | Фиатна валута |
| XAF | CFA franc BEAC | 3 | Фиатна валута |
| XCD | East Caribbean dollar | 2 | Фиатна валута |
| XOF | CFA franc BCEAO | 2 | Фиатна валута |
| XPF | CFP franc (franc Pacifique) | 3 | Фиатна валута |
| XTS | Кодове, предназначени специално за тестови цели | 2 | Запазен код |
| XXX | Кодовете, присвоени за транзакции, при които не участва валута | 2 | Запазен код |
| YER | Yemeni rial | 2 | Фиатна валута |
| ZAR | South African rand | 2 | Фиатна валута |
| ZMW | Zambian kwacha | 2 | Фиатна валута |
| ZWL | Zimbabwean dollar | 2 | Фиатна валута |
