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.
Query parameters:
- 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 | Фиатная валюта |
