AxtonPay API

Document version: 0.9

Información común

punto final de la API

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

Content-type

La API acepta HTTP solicitudes con 2 tipos de contenido: 'application/x-www-form-urlencoded', 'application/json'.

El encabezado HTTP debe ajustarse al contenido del cuerpo POST.

Abreviaturas y definiciones

  • {PID} - ID de la factura, generalmente es la secuencia alfanumérica única de 8 caracteres.
  • Shop - Tu sitio web que acepta pagos a través del servicio AxtonPay

Algoritmo de trabajo con API

Secuencia habitual de acciones para recibir el pago:

  • crear una factura ('/api/v1/private/checkout/payment/create'), la respuesta de la API devolverá la URL de la factura ('invoice_url'),
  • envía al comprador a esta factura para realizar el pago,
  • espera las notificaciones del servidor AxtonPay, que llegarán a las 'server_notification_url',
  • al recibir cualquier notificación de AxtonPay, verifique la validez de su firma y, preferiblemente, envíe una confirmación de recibo a AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • Si se cambia el estado de una factura, realiza las acciones correspondientes a este estado (por ejemplo, solicitar información completa sobre la factura, enviar los productos, crear un ticket para el equipo de soporte, etc.).

Si estableces una 'server_notification_url' vacía o inválida al crear una factura, el servicio no podrá enviar notificaciones sobre cambios de estado; en esos casos, deberías revisar la factura tú mismo en algún intervalo ('/api/v1/private/checkout/payment/get/{PID}').

Autorización de solicitudes

Para autorizar una solicitud es necesario calcular un Hash a partir de una cadena formada de manera especial. La cadena se compone concatenando (uniendo) los argumentos de la URL (QUERY_STRING) y el cuerpo de la solicitud POST (REQUEST_BODY). Es importante que todos los componentes se tomen exactamente en la forma en que serán enviados al servidor. Los argumentos de la URL (QUERY_STRING) deben tomarse de la URL como una sola línea, sin cambiar el orden de los argumentos y sin omitir ningún elemento. El cuerpo de la solicitud POST (REQUEST_BODY) también debe usarse sin ninguna modificación, incluyendo no eliminar comillas, espacios, corchetes o saltos de línea.

En los casos de un cuerpo de solicitud POST vacío y en el caso de argumentos de URL vacíos, ese componente simplemente será una cadena vacía.

La secuencia de datos en la solicitud de firma: QUERY_STRING primero, luego los datos POST. No debes insertar ningún signo de conexión entre ellos, solo concatenar las dos cadenas de texto.

Una vez más, cada símbolo es significativo. No deberías agregar ni eliminar siquiera un espacio en blanco o un símbolo de nueva línea. Simplemente utiliza los datos en bruto recibidos por el servidor.

Se toma un hash SHA-256 con la clave 'Secret key' de la cadena resultante y se utiliza como el segundo argumento de la función hash_hmac().

Es obligatorio pasar el parámetro 'time' que contiene la POSIX timestamp (Unix time) actual.

Esta firma es válida por 24 horas. Si el valor del parámetro 'time' difiere de la hora actual del servidor en más de 24 horas (ya sea hacia adelante o hacia atrás), la solicitud fallará incluso si la firma se calcula sin errores.

Si el panel del comerciante ha aceptado una solicitud con alguna firma, esa firma no puede usarse de nuevo, ni siquiera para enviar la solicitud con los mismos parámetros (esto incluye el parámetro 'time').

El hash resultante se pasa en el encabezado HTTP 'Sign'.

Además de la firma calculada, la solicitud también debe contener un encabezado 'Api-Key' que incluya la clave API utilizada. Ejemplo:

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

Puedes firmar la solicitud enviada a las AxtonPay con cualquier clave válida que pertenezca a este checkout. Sin embargo, las AxtonPay siempre usan la clave que has seleccionado en el panel del comerciante.

Ejemplo de cálculo de firma:

/* 
Imagine there is the POST request:
URI: '/api/v1/private/checkout/payment/create?time=1735084500.3561'
POST body: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&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'
*/

Presta atención a los espacios en blanco y los saltos de línea en otro ejemplo:

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

El Python ejemplo de cómo componer la cadena para el cálculo de la firma:

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

Parámetros

La API acepta todos los parámetros tanto en QUERY_STRING como en el cuerpo de la solicitud POST.

Variables booleanas

La API espera recibir '0' o '1' en variables booleanas, pero debido a la conversión implícita de tipos, cualquier cadena de texto se tratará como '1', incluso la palabra 'false'. Por lo tanto, para establecer explícitamente un valor 'FALSE' en una variable booleana, necesitas pasarle ya sea el valor '0' o una cadena vacía.

Separador decimal

Solo se utiliza el punto decimal como separador de decimales en los números.

Mayúsculas y minúsculas en los parámetros

Con pocas excepciones, todos los parámetros distinguen entre mayúsculas y minúsculas.

URL de retorno de llamada

En el panel de administración de AxtonPay, en la página de configuración de pago, es posible establecer las URL de la tienda para recibir notificaciones servidor a servidor de AxtonPay, así como las URL para redirigir al comprador después del pago de la factura o su cancelación, así como en caso de error.

Estas URL se pueden anular en la solicitud de creación de la factura.

Métodos de AxtonPay API

Creación de factura: /api/v1/private/checkout/payment/create

El método /api/v1/private/checkout/payment/create inicia la creación de la factura.

Si tiene éxito, el método devuelve un enlace ('invoice_url') al que deberías dirigir al cliente para el pago.

Parámetros de la factura propia:

  • time (requerido) - POSIX timestamp (Unix time)
  • amount (requerido) - cantidad a pagar (el precio del producto o servicio que la tienda desea recibir)
  • currency (requerido) - Código de moneda de 3 letras según ISO 4217-alpha, sin distinguir mayúsculas de minúsculas
  • pms (requerido) - métodos de pago mostrados en la página de la factura. Si deseas permitir todos los métodos de pago, el valor es 'all'; si deseas permitir solo algunos de ellos, enumera sus identificadores numéricos separados por comas.
  • pm - identificador del método de pago seleccionado. Es importante que si se pasa el parámetro 'pm', la factura se creará en 'modo transparente', es decir, el comprador no verá la página de la factura, sino que irá directamente al sistema de pago.
  • extra_data - un arreglo asociativo que contiene cualquier dato adicional; estos datos se devuelven a la tienda en su totalidad
  • shop_user_id - identificador de usuario en la tienda, se devuelve a la tienda sin cambios
  • shop_payment_id - identificador de pago en la tienda, se devuelve a la tienda sin cambios
  • shop_name - nombre de la tienda (se muestra en la página de la factura)
  • shop_payment_desc - descripción del pedido (se muestra en la página de la factura)
  • shop_payment_remark - tus notas sobre este pago (este es un campo para cualquier nota que tengas sobre el pago, la cual AxtonPay no envía a ningún lugar; solo es visible en la lista de pagos; no regresa a la tienda)
  • valid_time - el intervalo de tiempo en el que se puede pagar la factura; en segundos
  • view_time - intervalo de tiempo durante el cual la factura está disponible para ver a través de un enlace externo; en segundos; la cuenta regresiva comienza después de que finaliza el período 'valid_time'
  • server_notification_method - método de envío de notificaciones de servidor a servidor sobre los estados de pago a la tienda; valores válidos: POST, GET

Algunas configuraciones de la factura se establecen en la página de ajustes de pago. Pero los valores enviados en la solicitud tendrán prioridad sobre estas configuraciones.

Parámetros de pago que se pueden sobrescribir para esta factura:

  • customer_success_url - un enlace al que el comprador será redirigido si la factura se paga con éxito (es decir, si el estado de la factura es 'paid' o 'overpaid').
  • customer_cancel_url - un enlace al que se redirigirá al comprador si el pago se cancela
  • customer_fail_url - un enlace al que el comprador será redirigido si el pago termina con un error
  • server_notification_url - enlace para enviar notificaciones de estados de pago de servidor a servidor a la tienda

Nota: Para cumplir con su propia política de privacidad, generalmente no es necesario incluir los datos personales de su cliente en las propiedades de la factura. Por ejemplo, en el parámetro "shop_user_id", es mejor especificar un ID de cliente abstracto en lugar de su correo electrónico o número de teléfono. También en "shop_payment_desc", es mejor no incluir datos del cliente, porque ellos ya saben todo sobre sí mismos; en su lugar, puede escribir alguna información sobre los bienes o servicios pagados, o incluso solo escribir el tipo de acción, por ejemplo, "Compra" o "Recarga de saldo".

Todas las referencias se transmiten necesariamente con el protocolo.

Ejemplo de solicitud:

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

Ejemplo de una respuesta exitosa al solicitar la creación de una factura:

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

Obteniendo información de la factura: /api/v1/private/checkout/payment/get/{PID}

Para obtener la información que necesitas, llama al método /api/v1/private/checkout/payment/get/{PID}, especificando el PID de la factura al final de la URL.

Parámetros de la solicitud:

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

Ejemplo de una línea para componer una firma:

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

// String for signature calculation: 
time=1766837343

Ejemplo de una respuesta:

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

Comparación entre la cantidad solicitada y la cantidad pagada

La respuesta contiene varias cantidades diferentes (en la moneda en la que se emitió la factura):

  • "amount" - importe facturado
  • "filled" - pagó parte de la factura,
  • "total_filled" - cuánto pagó el cliente en total, incluidas las comisiones.

Si "filled = amount", entonces se paga exactamente lo que necesita ser.

Si "filled > amount", hay un pago en exceso.

Si "filled < amount", la factura no ha sido pagada en su totalidad (pago insuficiente).

Factura: procesamiento de notificación de AxtonPay sobre cambio de estado

Cada vez que se cambia el estado de una factura, AxtonPay envía una notificación a server_notification_url (usando el server_notification_method)

Datos de ejemplo:

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

En respuesta a esta notificación, AxtonPay espera recibir HTTP code 200, lo que confirma su recepción exitosa. De lo contrario, AxtonPay intentará 12 veces más a intervalos progresivamente crecientes, y luego el estado de la notificación cambia a 'error' (pero esto no afecta el estado de la factura en sí).

Posibles valores de estado:

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

Los estados de pago exitosos son 1 (paid) y 5 (overpaid); en caso de recibirlos, puedes transferir la compra pagada al cliente o recargar el saldo. Para los pagos con estado 5 (overpaid), en caso de recarga de saldo, puedes recargar el saldo por el monto del pago realmente recibido, pero en caso de venta de bienes/servicios y un monto significativo de sobrepago, es recomendable contactar al pagador y decidir con él cómo manejar el sobrepago.

El estado parcialmente exitoso es 4 (underpaid); en caso de recibir este estado, es posible recargar el saldo por la cantidad efectivamente recibida. Sin embargo, este estado no puede considerarse exitoso para la venta de bienes/servicios.

Todos los demás estados - 0 (pending), 2 (error), 3 (canceled by customer) significan ausencia total de pago; en caso de recibirlos, no se deben realizar acciones de recarga de saldo ni de venta de bienes/servicios.

Comprobación de firma

Para asegurarse de que la notificación la envía exactamente AxtonPay, es necesario verificar la firma de la notificación recibida antes de confiar en ella. La verificación es similar a firmar tus propias solicitudes, solo que se añade el último paso, cuando debes comparar la firma calculada con la cabecera HTTP recibida 'Sign'.

Los pasos principales después de recibir la notificación sobre el cambio en el estado de pago son los siguientes:

  • toma toda la cadena de argumentos (QUERY_STRING) de la notificación recibida,
  • toma todo el POST data (REQUEST_BODY) de la notificación recibida,
  • calcula la firma usando esos QUERY_STRING + REQUEST_BODY y los 'Secret key' apropiados,
  • comparar la firma calculada con la que se recibe en el encabezado HTTP 'Sign',
  • si las firmas son las mismas, la notificación realmente vino de AxtonPay;
  • Si las firmas son diferentes, podría ser un intento de fraude por parte del pagador.

Ejemplo de una línea para la generación de firmas:

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

Confirmación de que la tienda ha procesado la información de pago: /api/v1/private/checkout/payment/confirm/{PID}

Esta solicitud se envía a AxtonPay en respuesta a una notificación recibida de él. Funcionalmente, es una confirmación de que la tienda ha recibido y procesado correctamente la notificación recibida.

Para enviar una solicitud, llama al método /api/v1/private/checkout/payment/confirm/{PID}, especificando el pid de la factura al final de la URL.

Parámetros de solicitud:

  • time (requerido) - POSIX timestamp (Unix time)
  • status (obligatorio, número entero) - número de estado de pago para el cual la tienda envía la confirmación

Si el estado transmitido coincide con el estado actual de esta factura en el sistema, AxtonPay responderá con 'OK' y si no coincide, responderá con un error.

Ejemplo de una línea para la generación de firmas:

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

Ejemplo de una respuesta si el estado de pago actual es el mismo:

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

Ejemplo de una respuesta si el estado de pago actual difiere del que se transmitió en la solicitud:

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

Códigos de moneda

Las monedas que se pueden usar para la creación de una factura.

La mayoría de los códigos de moneda utilizados pertenecen a monedas fiduciarias, y son iguales al ISO 4217. También la lista contiene varias criptomonedas.

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