Document version: 0.9
Informação comum
Ponto de extremidade da API
https://mp.axtonpay.com/api/v1/private/checkout
Content-type
A API aceita HTTP pedidos com 2 tipos de conteúdo: 'application/x-www-form-urlencoded', 'application/json'.
O cabeçalho HTTP deve ajustar-se ao conteúdo do corpo POST.
Abreviaturas e definições
- {PID} - ID da fatura, geralmente é a sequência alfanumérica única de 8 caracteres.
- Shop - O seu website que aceita pagamentos através do serviço AxtonPay
Algoritmo de trabalho com API
Sequência habitual de ações para receber pagamento:
- criar uma fatura ('/api/v1/private/checkout/payment/create'), a resposta da API irá retornar o URL da fatura ('invoice_url'),
- envie o comprador para esta fatura para efetuar o pagamento,
- espere pelas notificações do servidor AxtonPay, que irão chegar a 'server_notification_url',
- ao receber qualquer notificação de AxtonPay, verifique a validade da sua assinatura e, preferencialmente, envie uma confirmação de recebimento a AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
- se o estado de uma fatura for alterado, execute ações correspondentes a este estado (por exemplo, solicitar informações completas sobre a fatura, enviar as mercadorias, criar um ticket para a equipa de suporte, etc.)
Se definir um 'server_notification_url' vazio ou inválido ao criar uma fatura, o serviço não consegue enviar notificações sobre alterações de estado; nesses casos, deverá verificar a fatura você mesmo em algum intervalo ('/api/v1/private/checkout/payment/get/{PID}').
Autorização de pedidos
Para autorizar um pedido, é necessário calcular um Hash a partir de uma cadeia formada de uma maneira especial. A cadeia é composta concatenando (colando) os argumentos da URL (QUERY_STRING) e o corpo do pedido POST (REQUEST_BODY). É importante que todos os componentes sejam considerados exatamente na forma em que serão transmitidos para o servidor. Os argumentos da URL (QUERY_STRING) devem ser retirados da URL como uma única linha, sem alterar a ordem dos argumentos e sem eliminar qualquer elemento. O corpo do pedido POST (REQUEST_BODY) também deve ser usado sem quaisquer alterações, incluindo não remover aspas, espaços, colchetes ou quebras de linha.
Nos casos de um corpo de pedido POST vazio, e no caso de argumentos de URL vazios, esse componente será simplesmente uma string vazia.
A sequência de dados no pedido de assinatura: QUERY_STRING primeiro, depois os dados POST. Não deve inserir quaisquer sinais de ligação entre eles, apenas concatenar as duas cadeias de texto.
Mais uma vez, cada símbolo é significativo. Não deve adicionar nem remover sequer um espaço em branco ou símbolo de nova linha. Apenas use os dados brutos recebidos pelo servidor.
Um SHA-256 hash com a chave 'Secret key' é retirado da string resultante e usado como o segundo argumento da função hash_hmac().
É obrigatório passar o parâmetro 'time' que contém o POSIX timestamp (Unix time) atual.
Esta assinatura é válida por 24 horas. Se o valor do parâmetro 'time' diferir da hora atual do servidor por mais de 24 horas (seja para a frente ou para trás), o pedido falhará mesmo que a assinatura seja calculada sem erros.
Se o painel de comerciante aceitar um pedido com alguma assinatura, essa assinatura não pode ser usada novamente, mesmo para enviar o pedido com os mesmos parâmetros (isto inclui o parâmetro 'time').
O hash resultante é passado no cabeçalho HTTP 'Sign'.
Além da assinatura calculada, a requisição deve também conter um cabeçalho 'Api-Key' com a chave API utilizada. Exemplo:
$headers = [
'Api-Key: ' . $the_api_key,
'Sign: ' . $signature_sha256
];
Pode assinar o pedido enviado ao AxtonPay com qualquer chave válida que pertença a este checkout. No entanto, o AxtonPay utiliza sempre a chave que selecionou no painel do comerciante.
Exemplo de cálculo de assinatura:
/* 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' */
Preste atenção aos espaços em branco e quebras de linha noutro exemplo:
/*
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"
}'
*/
O Python exemplo de compor a string para o cálculo da assinatura:
string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'
Parâmetros
A API aceita todos os parâmetros tanto em QUERY_STRING como no corpo do pedido POST.
Variáveis booleanas
A API espera receber '0' ou '1' em variáveis Booleanas, mas devido à conversão implícita de tipos, qualquer cadeia de texto será tratada como '1', mesmo a palavra 'false'. Assim, para definir explicitamente um valor 'FALSE' para uma variável Booleana, é necessário passar-lhe ou o valor '0' ou uma cadeia vazia.
Separador decimal
Apenas o ponto decimal é usado como separador decimal nos números.
Maiúsculas e minúsculas nos parâmetros
Com poucas exceções, todos os parâmetros diferenciam maiúsculas de minúsculas.
URL de retorno de chamada
No painel de administração do AxtonPay, na página de definições de checkout, é possível definir URLs da loja para receber notificações servidor-servidor do AxtonPay, assim como URLs para redirecionar o comprador após o pagamento da fatura ou a sua anulação, bem como em caso de erro.
Estes URLs podem ser substituídos na solicitação de criação de fatura.
Métodos da AxtonPay API
Criação de fatura: /api/v1/private/checkout/payment/create
O método /api/v1/private/checkout/payment/create inicia a criação da fatura.
Se for bem-sucedido, o método retorna um link ('invoice_url') para o qual deve encaminhar o cliente para pagamento.
Parâmetros da fatura própria:
- time (obrigatório) - POSIX timestamp (Unix time)
- amount (obrigatório) - quantia a pagar (o preço do produto ou serviço que a loja deseja receber)
- currency (obrigatório) - Código de moeda de 3 letras de acordo com ISO 4217-alpha, sem distinção entre maiúsculas e minúsculas
- pms (obrigatório) - métodos de pagamento exibidos na página da fatura. Se quiser permitir todos os métodos de pagamento, o valor é 'all'; se quiser permitir apenas alguns deles, liste os seus identificadores numéricos separados por vírgulas.
- pm - identificador do método de pagamento selecionado. É importante que, se o parâmetro 'pm' for passado, a fatura seja criada em 'modo transparente', ou seja, o comprador não verá a página da fatura, mas será direcionado diretamente para o sistema de pagamento.
- extra_data - um array associativo contendo quaisquer dados adicionais; estes dados são devolvidos à loja na sua totalidade
- shop_user_id - identificador do utilizador na loja, ele é devolvido à loja na forma inalterada
- shop_payment_id - identificador de pagamento na loja, é devolvido à loja na forma inalterada
- shop_name - nome da loja (exibido na página da fatura)
- shop_payment_desc - descrição da encomenda (exibida na página da fatura)
- shop_payment_remark - as suas notas sobre este pagamento (este é um campo para quaisquer notas que tenha sobre o pagamento, que AxtonPay não transmite para lado nenhum; é apenas visível na lista de pagamentos; não volta para a loja)
- valid_time - o intervalo de tempo em que a fatura pode ser paga; em segundos
- view_time - intervalo de tempo durante o qual a fatura está disponível para visualização através de link externo; em segundos; a contagem decrescente começa após o fim do período 'valid_time'
- server_notification_method - método de envio de notificações servidor-servidor sobre estados de pagamento para a loja; valores válidos: POST, GET
Algumas configurações para a fatura estão definidas na página de configurações de checkout. Mas os valores enviados na solicitação terão prioridade sobre estas configurações.
Parâmetros de checkout que podem ser substituídos para esta fatura:
- customer_success_url - um link para o qual o comprador será redirecionado se a fatura for paga com sucesso (ou seja, se o estado da fatura for 'paid' ou 'overpaid').
- customer_cancel_url - um link para o qual o comprador será redirecionado se o pagamento for cancelado
- customer_fail_url - um link para o qual o comprador será redirecionado se o pagamento terminar com um erro
- server_notification_url - link para enviar notificações servidor-servidor sobre estados de pagamento para a loja
Nota: Para cumprir a sua própria política de privacidade, geralmente não é necessário incluir os dados pessoais do seu cliente nas propriedades da fatura. Por exemplo, no parâmetro "shop_user_id", é melhor especificar um ID de cliente abstrato em vez do seu email ou número de telefone. Também no "shop_payment_desc", é preferível não incluir dados do cliente de todo, porque eles já sabem tudo sobre si próprios; em vez disso, pode escrever alguma informação sobre os bens ou serviços pagos, ou até apenas indicar o tipo de ação, por exemplo, "Compra" ou "Recarregamento de saldo".
Todas as referências são necessariamente transmitidas com o protocolo.
Exemplo de pedido:
<?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);
?>
Exemplo de uma resposta bem-sucedida ao solicitar a criação de uma fatura:
{
"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"
}
A obter informações da fatura: /api/v1/private/checkout/payment/get/{PID}
Para obter a informação que precisa, chame o método /api/v1/private/checkout/payment/get/{PID}, especificando o PID da fatura no final do URL.
Parâmetros da requisição:
- time (obrigatório) - POSIX timestamp (Unix time)
Exemplo de uma linha para compor uma assinatura:
// Full URL: https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343 // String for signature calculation: time=1766837343
Exemplo de uma resposta:
{
"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"
}
}
Comparação entre o montante solicitado e o montante pago
A resposta contém vários montantes diferentes (na moeda em que a fatura foi emitida):
- "amount" - montante faturado,
- "filled" - pagou parte da fatura,
- "total_filled" - quanto o cliente pagou no total, incluindo comissões.
Se "filled = amount", então é pago exatamente o que é necessário.
Se "filled > amount", há um pagamento em excesso.
Se "filled < amount", a fatura não foi paga na totalidade (pagamento insuficiente).
Fatura: processamento da notificação de AxtonPay sobre a mudança de estado
Cada vez que o estado de uma fatura é alterado, AxtonPay envia uma notificação para server_notification_url (usando o server_notification_method)
Exemplo de dados:
{
"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"
}
Em resposta a esta notificação AxtonPay espera receber HTTP code 200, o que confirma o seu recebimento com sucesso. Caso contrário, AxtonPay irá tentar 12 vezes mais em intervalos progressivamente maiores, e depois o estado da notificação muda para 'error' (mas isto não afeta o estado da própria fatura).
Valores de estado possíveis:
- 0 - pending
- 1 - paid
- 2 - error
- 3 - cancelled by customer
- 4 - underpaid
- 5 - overpaid
- 8 - expired
Os estados de pagamento bem-sucedidos são 1 (paid) e 5 (overpaid); no caso de os receber, pode transferir a compra paga para o cliente ou reabastecer o saldo. Para pagamentos com o estado 5 (overpaid), no caso de reabastecimento do saldo, pode reabastecer o saldo pelo montante do pagamento realmente recebido, mas no caso de venda de bens/serviços e um montante significativo de pagamento em excesso, é aconselhável contactar o pagador e decidir com ele como lidar com o pagamento em excesso.
O estado parcialmente bem-sucedido é 4 (underpaid); no caso de receber este estado, é possível recarregar o saldo pelo montante do pagamento efetivamente recebido. No entanto, este estado não pode ser considerado bem-sucedido para a venda de bens/serviços.
Todos os outros estados - 0 (pending), 2 (error), 3 (canceled by customer) significam ausência total de pagamento; no caso da sua receção, não devem ser realizadas ações de reposição de saldo ou venda de bens/serviços.
Verificação de assinatura
Para ter a certeza de que a notificação é enviada pela AxtonPay, é necessário verificar a assinatura da notificação recebida antes de confiar nela. A verificação é semelhante à assinatura dos seus próprios pedidos, apenas é adicionado o último passo, quando deve comparar a assinatura calculada com o cabeçalho HTTP recebido 'Sign'.
Os principais passos após receber a notificação sobre a alteração do estado de pagamento são os seguintes:
- pegar toda a sequência de argumentos (QUERY_STRING) da notificação recebida,
- pegue o POST data (REQUEST_BODY) inteiro da notificação recebida,
- calcule a assinatura usando aqueles QUERY_STRING + REQUEST_BODY e o 'Secret key' apropriado,
- comparar a assinatura calculada com a que é recebida no cabeçalho HTTP 'Sign',
- se as assinaturas forem iguais, a notificação realmente veio de AxtonPay;
- se as assinaturas forem diferentes, pode ser uma tentativa de fraude por parte do pagador.
Exemplo de uma linha para geração de assinatura:
// 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
Confirmação de que a loja processou a informação de pagamento: /api/v1/private/checkout/payment/confirm/{PID}
Este pedido é enviado para AxtonPay em resposta a uma notificação recebida por ele. Funcionalmente, é uma confirmação de que a loja recebeu e processou com sucesso a notificação recebida.
Para enviar um pedido, chame o método /api/v1/private/checkout/payment/confirm/{PID}, especificando o pid da fatura no final da URL.
Parâmetros do pedido:
- time (obrigatório) - POSIX timestamp (Unix time)
- status (obrigatório, inteiro) - número do estado de pagamento para o qual a loja envia confirmação
Se o estado transmitido corresponder ao estado atual desta fatura no sistema, AxtonPay irá responder com 'OK' e, se não corresponder, irá responder com um erro.
Exemplo de uma linha para geração de assinatura:
// 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"}
Exemplo de uma resposta se o estado de pagamento atual for o mesmo:
{
"status": "ok",
"data": "\"Paid\" status notification is confirmed"
}
Exemplo de uma resposta caso o estado de pagamento atual difira do transmitido na solicitação:
{
"status": "error",
"message": "Something went wrong"
}
Códigos de moeda
As moedas que podem ser usadas para a criação de uma fatura.
A maioria dos códigos de moeda utilizados pertence a moedas fiduciárias e são iguais ao ISO 4217. A lista também contém várias criptomoedas.
| Código | Nome | Dígitos decimais | Tipo |
| BCH | Bitcoin Cash | 8 | Criptomoeda |
| BLK | Blackcoin | 8 | Criptomoeda |
| BNB | Binancecoin | 18 | Criptomoeda |
| BTC | Bitcoin | 8 | Criptomoeda |
| BTT | BitTorrent | 18 | Token criptográfico |
| BUSD | Binance USD | 18 | Token criptográfico |
| DAI | Dai | 18 | Token criptográfico |
| DASH | Dash | 8 | Criptomoeda |
| DOGE | Dogecoin | 8 | Criptomoeda |
| ETC | Ethereum Classic | 18 | Criptomoeda |
| ETH | Ethereum | 18 | Criptomoeda |
| LTC | Litecoin | 8 | Criptomoeda |
| NLG | Gulden | 8 | Criptomoeda |
| RDD | ReddCoin | 8 | Criptomoeda |
| TRX | Tron | 6 | Criptomoeda |
| USDC | USD Coin | 6 | Token criptográfico |
| USDD | Decentralized USD | 18 | Token criptográfico |
| USDT | Tether USDT | 6 | Token criptográfico |
| VTC | Vertcoin | 8 | Criptomoeda |
| XVG | Verge | 8 | Criptomoeda |
| AED | United Arab Emirates dirham | 2 | Moeda fiduciária |
| AFN | Afghan afghani | 2 | Moeda fiduciária |
| ALL | Albanian lek | 2 | Moeda fiduciária |
| AMD | Armenian dram | 2 | Moeda fiduciária |
| ANG | Netherlands Antillean guilder | 2 | Moeda fiduciária |
| AOA | Angolan kwanza | 2 | Moeda fiduciária |
| ARS | Argentine peso | 2 | Moeda fiduciária |
| AUD | Australian dollar | 2 | Moeda fiduciária |
| AWG | Aruban florin | 2 | Moeda fiduciária |
| AZN | Azerbaijani manat | 2 | Moeda fiduciária |
| BAM | Bosnia and Herzegovina convertible mark | 2 | Moeda fiduciária |
| BBD | Barbados dollar | 2 | Moeda fiduciária |
| BDT | Bangladeshi taka | 2 | Moeda fiduciária |
| BGN | Bulgarian lev | 2 | Moeda fiduciária |
| BHD | Bahraini dinar | 3 | Moeda fiduciária |
| BIF | Burundian franc | 2 | Moeda fiduciária |
| BMD | Bermudian dollar | 2 | Moeda fiduciária |
| BND | Brunei dollar | 2 | Moeda fiduciária |
| BOB | Boliviano | 2 | Moeda fiduciária |
| BRL | Brazilian real | 2 | Moeda fiduciária |
| BSD | Bahamian dollar | 2 | Moeda fiduciária |
| BTN | Bhutanese ngultrum | 2 | Moeda fiduciária |
| BWP | Botswana pula | 2 | Moeda fiduciária |
| BYN | Belarusian ruble | 2 | Moeda fiduciária |
| BZD | Belize dollar | 2 | Moeda fiduciária |
| CAD | Canadian dollar | 2 | Moeda fiduciária |
| CDF | Congolese franc | 2 | Moeda fiduciária |
| CHF | Swiss franc | 2 | Moeda fiduciária |
| CLP | Chilean peso | 2 | Moeda fiduciária |
| CNY | Renminbi (Chinese) yuan | 2 | Moeda fiduciária |
| COP | Colombian peso | 2 | Moeda fiduciária |
| CRC | Costa Rican colon | 2 | Moeda fiduciária |
| CUC | Cuban convertible peso | 2 | Moeda fiduciária |
| CUP | Cuban peso | 2 | Moeda fiduciária |
| CVE | Cape Verde escudo | 2 | Moeda fiduciária |
| CZK | Czech koruna | 2 | Moeda fiduciária |
| DJF | Djiboutian franc | 2 | Moeda fiduciária |
| DKK | Danish krone | 2 | Moeda fiduciária |
| DOP | Dominican peso | 2 | Moeda fiduciária |
| DZD | Algerian dinar | 2 | Moeda fiduciária |
| EGP | Egyptian pound | 2 | Moeda fiduciária |
| ERN | Eritrean nakfa | 2 | Moeda fiduciária |
| ETB | Ethiopian birr | 2 | Moeda fiduciária |
| EUR | Euro | 2 | Moeda fiduciária |
| FJD | Fiji dollar | 2 | Moeda fiduciária |
| FKP | Falkland Islands pound | 2 | Moeda fiduciária |
| GBP | Pound sterling | 2 | Moeda fiduciária |
| GEL | Georgian lari | 2 | Moeda fiduciária |
| GHS | Ghanaian cedi | 2 | Moeda fiduciária |
| GIP | Gibraltar pound | 2 | Moeda fiduciária |
| GMD | Gambian dalasi | 2 | Moeda fiduciária |
| GNF | Guinean franc | 0 | Moeda fiduciária |
| GTQ | Guatemalan quetzal | 2 | Moeda fiduciária |
| GYD | Guyanese dollar | 2 | Moeda fiduciária |
| HKD | Hong Kong dollar | 2 | Moeda fiduciária |
| HNL | Honduran lempira | 2 | Moeda fiduciária |
| HRK | Croatian kuna | 2 | Moeda fiduciária |
| HTG | Haitian gourde | 2 | Moeda fiduciária |
| HUF | Hungarian forint | 2 | Moeda fiduciária |
| IDR | Indonesian rupiah | 2 | Moeda fiduciária |
| ILS | Israeli new shekel | 2 | Moeda fiduciária |
| INR | Indian rupee | 2 | Moeda fiduciária |
| IQD | Iraqi dinar | 3 | Moeda fiduciária |
| IRR | Iranian rial | 2 | Moeda fiduciária |
| ISK | Icelandic krona | 2 | Moeda fiduciária |
| JMD | Jamaican dollar | 2 | Moeda fiduciária |
| JOD | Jordanian dinar | 3 | Moeda fiduciária |
| JPY | Japanese yen | 3 | Moeda fiduciária |
| KES | Kenyan shilling | 2 | Moeda fiduciária |
| KGS | Kyrgyzstani som | 2 | Moeda fiduciária |
| KHR | Cambodian riel | 2 | Moeda fiduciária |
| KMF | Comoro franc | 2 | Moeda fiduciária |
| KPW | North Korean won | 2 | Moeda fiduciária |
| KRW | South Korean won | 2 | Moeda fiduciária |
| KWD | Kuwaiti dinar | 3 | Moeda fiduciária |
| KYD | Cayman Islands dollar | 2 | Moeda fiduciária |
| KZT | Kazakhstani tenge | 2 | Moeda fiduciária |
| LAK | Lao kip | 2 | Moeda fiduciária |
| LBP | Lebanese pound | 2 | Moeda fiduciária |
| LKR | Sri Lankan rupee | 2 | Moeda fiduciária |
| LRD | Liberian dollar | 2 | Moeda fiduciária |
| LSL | Lesotho loti | 2 | Moeda fiduciária |
| LYD | Libyan dinar | 3 | Moeda fiduciária |
| MAD | Moroccan dirham | 2 | Moeda fiduciária |
| MDL | Moldovan leu | 2 | Moeda fiduciária |
| MGA | Malagasy ariary | 2 | Moeda fiduciária |
| MKD | Macedonian denar | 2 | Moeda fiduciária |
| MMK | Myanmar kyat | 2 | Moeda fiduciária |
| MNT | Mongolian togrog | 2 | Moeda fiduciária |
| MOP | Macanese pataca | 2 | Moeda fiduciária |
| MRU | Mauritanian ouguiya | 2 | Moeda fiduciária |
| MUR | Mauritian rupee | 2 | Moeda fiduciária |
| MVR | Maldivian rufiyaa | 2 | Moeda fiduciária |
| MWK | Malawian kwacha | 2 | Moeda fiduciária |
| MXN | Mexican peso | 2 | Moeda fiduciária |
| MYR | Malaysian ringgit | 2 | Moeda fiduciária |
| MZN | Mozambican metical | 2 | Moeda fiduciária |
| NAD | Namibian dollar | 2 | Moeda fiduciária |
| NGN | Nigerian naira | 2 | Moeda fiduciária |
| NIO | Nicaraguan cordoba | 2 | Moeda fiduciária |
| NOK | Norwegian krone | 2 | Moeda fiduciária |
| NPR | Nepalese rupee | 2 | Moeda fiduciária |
| NZD | New Zealand dollar | 2 | Moeda fiduciária |
| OMR | Omani rial | 3 | Moeda fiduciária |
| PAB | Panamanian balboa | 2 | Moeda fiduciária |
| PEN | Peruvian sol | 2 | Moeda fiduciária |
| PGK | Papua New Guinean kina | 2 | Moeda fiduciária |
| PHP | Philippine peso | 2 | Moeda fiduciária |
| PKR | Pakistani rupee | 2 | Moeda fiduciária |
| PLN | Polish zloty | 2 | Moeda fiduciária |
| PYG | Paraguayan guarani | 2 | Moeda fiduciária |
| QAR | Qatari riyal | 2 | Moeda fiduciária |
| RON | Romanian leu | 2 | Moeda fiduciária |
| RSD | Serbian dinar | 2 | Moeda fiduciária |
| RUB | Russian ruble | 2 | Moeda fiduciária |
| RWF | Rwandan franc | 2 | Moeda fiduciária |
| SAR | Saudi riyal | 2 | Moeda fiduciária |
| SBD | Solomon Islands dollar | 2 | Moeda fiduciária |
| SCR | Seychelles rupee | 2 | Moeda fiduciária |
| SDG | Sudanese pound | 2 | Moeda fiduciária |
| SEK | Swedish krona/kronor | 2 | Moeda fiduciária |
| SGD | Singapore dollar | 2 | Moeda fiduciária |
| SHP | Saint Helena pound | 2 | Moeda fiduciária |
| SLL | Sierra Leonean leone | 2 | Moeda fiduciária |
| SOS | Somali shilling | 2 | Moeda fiduciária |
| SRD | Surinamese dollar | 2 | Moeda fiduciária |
| SSP | South Sudanese pound | 2 | Moeda fiduciária |
| STN | Sao Tome and Pricipe dobra | 2 | Moeda fiduciária |
| SVC | Salvadoran colon | 2 | Moeda fiduciária |
| SYP | Syrian pound | 2 | Moeda fiduciária |
| SZL | Swazi lilangeni | 2 | Moeda fiduciária |
| THB | Thai baht | 2 | Moeda fiduciária |
| TJS | Tajikistani somoni | 2 | Moeda fiduciária |
| TMT | Turkmenistan manat | 2 | Moeda fiduciária |
| TND | Tunisian dinar | 3 | Moeda fiduciária |
| TOP | Tongan paanga | 2 | Moeda fiduciária |
| TRY | Turkish lira | 2 | Moeda fiduciária |
| TTD | Trinidad and Tobago dollar | 2 | Moeda fiduciária |
| TWD | New Taiwan dollar | 2 | Moeda fiduciária |
| TZS | Tanzanian shilling | 2 | Moeda fiduciária |
| UAH | Ukrainian hryvnia | 2 | Moeda fiduciária |
| UGX | Ugandan shilling | 0 | Moeda fiduciária |
| USD | United States dollar | 2 | Moeda fiduciária |
| UYU | Uruguayan peso | 2 | Moeda fiduciária |
| UZS | Uzbekistan som | 2 | Moeda fiduciária |
| VES | Venezuelan bolivar soberano | 2 | Moeda fiduciária |
| VND | Vietnamese dong | 2 | Moeda fiduciária |
| VUV | Vanuatu vatu | 0 | Moeda fiduciária |
| WST | Samoan tala | 2 | Moeda fiduciária |
| XAF | CFA franc BEAC | 3 | Moeda fiduciária |
| XCD | East Caribbean dollar | 2 | Moeda fiduciária |
| XOF | CFA franc BCEAO | 2 | Moeda fiduciária |
| XPF | CFP franc (franc Pacifique) | 3 | Moeda fiduciária |
| XTS | Códigos especificamente reservados para fins de teste | 2 | Código reservado |
| XXX | Os códigos atribuídos a transações em que não há envolvimento de moeda | 2 | Código reservado |
| YER | Yemeni rial | 2 | Moeda fiduciária |
| ZAR | South African rand | 2 | Moeda fiduciária |
| ZMW | Zambian kwacha | 2 | Moeda fiduciária |
| ZWL | Zimbabwean dollar | 2 | Moeda fiduciária |
