AxtonPay API

Document version: 0.9

Informasi umum

titik akhir API

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

Content-type

API menerima HTTP permintaan dengan 2 jenis konten: 'application/x-www-form-urlencoded', 'application/json'.

Header HTTP harus sesuai dengan konten dari POST body.

Singkatan dan definisi

  • {PID} - ID faktur, biasanya ini adalah urutan alfanumerik unik 8 karakter.
  • Shop - Situs web Anda yang menerima pembayaran melalui layanan AxtonPay

Algoritma bekerja dengan API

Urutan tindakan biasa untuk menerima pembayaran:

  • buat faktur ('/api/v1/private/checkout/payment/create'), respons API akan mengembalikan URL faktur ('invoice_url'),
  • kirim pembeli ke faktur ini untuk melakukan pembayaran,
  • tunggu pemberitahuan server AxtonPay, yang akan datang ke 'server_notification_url',
  • setelah menerima pemberitahuan apa pun dari AxtonPay, periksa keabsahan tanda tangannya dan sebaiknya kirimkan konfirmasi penerimaan kepada AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • jika status sebuah faktur diubah, lakukan tindakan yang sesuai dengan status ini (misalnya, minta informasi lengkap tentang faktur, kirim barang, buat tiket ke tim dukungan, dll.).

Jika Anda mengatur 'server_notification_url' kosong atau tidak valid saat membuat faktur, layanan tidak dapat mengirim pemberitahuan tentang perubahan status; dalam kasus seperti itu, Anda harus memeriksa faktur sendiri pada interval tertentu ('/api/v1/private/checkout/payment/get/{PID}').

Otorisasi permintaan

Untuk mengotorisasi sebuah permintaan, perlu menghitung Hash dari sebuah string yang dibentuk dengan cara khusus. String ini terdiri dari penggabungan (menyatukan) argumen URL (QUERY_STRING) dan body dari permintaan POST (REQUEST_BODY). Penting bahwa semua komponen harus diambil persis dalam bentuk yang akan dikirimkan ke server. Argumen URL (QUERY_STRING) harus diambil dari URL sebagai satu baris, tanpa mengubah urutan argumen dan tanpa menghilangkan elemen apa pun. Body permintaan POST (REQUEST_BODY) juga harus digunakan tanpa modifikasi apa pun, termasuk tidak menghapus tanda kutip, spasi, tanda kurung, dan pemecahan baris.

Dalam kasus tubuh permintaan POST yang kosong, dan dalam kasus argumen URL yang kosong, komponen itu akan menjadi string kosong.

Urutan data dalam permintaan penandatanganan: QUERY_STRING pertama, lalu data POST. Anda tidak boleh memasukkan tanda penghubung di antara keduanya, cukup gabungkan dua string teks.

Sekali lagi, setiap simbol itu penting. Anda tidak boleh menambahkan atau menghapus bahkan satu spasi atau simbol baris baru. Gunakan hanya data mentah yang diterima oleh server.

Sebuah SHA-256 hash dengan kunci 'Secret key' diambil dari string yang dihasilkan dan digunakan sebagai argumen kedua dari fungsi hash_hmac().

Wajib untuk melewatkan parameter 'time' yang berisi POSIX timestamp (Unix time) saat ini.

Tanda tangan ini berlaku selama 24 jam. Jika nilai parameter 'time' berbeda dari waktu server saat ini lebih dari 24 jam (baik ke depan maupun ke belakang), permintaan akan gagal meskipun tanda tangan dihitung tanpa kesalahan.

Jika panel pedagang telah menerima permintaan dengan beberapa tanda tangan, tanda tangan itu tidak dapat digunakan lagi, bahkan untuk mengirim permintaan dengan parameter yang sama (ini termasuk parameter 'time').

Hash yang dihasilkan dikirimkan dalam header HTTP 'Sign'.

Selain tanda tangan yang dihitung, permintaan juga harus berisi header 'Api-Key' yang memuat kunci API yang digunakan. Contoh:

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

Anda dapat menandatangani permintaan yang dikirim ke AxtonPay dengan kunci valid apa pun yang milik checkout ini. Namun, AxtonPay selalu menggunakan kunci yang telah Anda pilih di panel pedagang.

Contoh perhitungan tanda tangan:

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

Perhatikan spasi dan pemisah baris pada contoh lain:

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

Contoh Python dalam menyusun string untuk perhitungan tanda tangan:

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

Parameter

API menerima semua parameter baik di QUERY_STRING maupun di tubuh permintaan POST.

Variabel boolean

API mengharapkan mendapatkan '0' atau '1' dalam variabel Boolean, tetapi karena konversi tipe implisit, setiap string teks akan diperlakukan sebagai '1', bahkan kata 'false'. Oleh karena itu, untuk secara eksplisit menetapkan nilai 'FALSE' untuk variabel Boolean, Anda perlu memberinya nilai '0' atau string kosong.

Pemisah desimal

Hanya titik desimal yang digunakan sebagai pemisah desimal dalam angka.

Huruf besar-kecil pada parameter

Dengan beberapa pengecualian, semua parameter peka terhadap huruf besar/kecil.

URL Panggilan Balik

Di panel admin AxtonPay, pada halaman pengaturan pembayaran, dimungkinkan untuk mengatur URL toko untuk menerima notifikasi server-ke-server dari AxtonPay, serta URL untuk mengarahkan pembeli setelah pembayaran faktur atau pembatalannya, serta dalam kasus terjadi kesalahan.

URL ini dapat diganti dalam permintaan pembuatan faktur.

Metode dari AxtonPay API

Pembuatan faktur: /api/v1/private/checkout/payment/create

Metode /api/v1/private/checkout/payment/create memulai pembuatan faktur.

Jika berhasil, metode ini mengembalikan sebuah tautan ('invoice_url') yang harus Anda teruskan kepada pelanggan untuk pembayaran.

Parameter faktur sendiri:

  • time (diperlukan) - POSIX timestamp (Unix time)
  • amount (diperlukan) - jumlah yang harus dibayar (harga produk atau layanan yang ingin diterima toko)
  • currency (diperlukan) - Kode mata uang 3 huruf menurut ISO 4217-alpha, tidak membedakan huruf besar atau kecil
  • pms (diperlukan) - metode pembayaran yang ditampilkan di halaman faktur. Jika Anda ingin mengizinkan semua metode pembayaran, nilainya adalah 'all'; jika Anda hanya ingin mengizinkan beberapa di antaranya, daftarkan identifier numerik mereka yang dipisahkan dengan koma.
  • pm - pengidentifikasi metode pembayaran yang dipilih. Penting bahwa jika parameter 'pm' dilewatkan, faktur akan dibuat dalam 'mode transparan', yaitu pembeli tidak akan melihat halaman faktur, tetapi akan langsung menuju ke sistem pembayaran.
  • extra_data - sebuah array asosiatif yang berisi data tambahan apa pun; data ini dikembalikan ke penyimpanan secara utuh
  • shop_user_id - identifier pengguna di toko, dikembalikan ke toko dalam bentuk yang tidak berubah
  • shop_payment_id - identifier pembayaran di toko, dikembalikan ke toko dalam bentuk yang tidak berubah
  • shop_name - nama toko (ditampilkan di halaman faktur)
  • shop_payment_desc - deskripsi pesanan (ditampilkan di halaman faktur)
  • shop_payment_remark - catatan Anda tentang pembayaran ini (ini adalah kolom untuk catatan apa pun yang Anda miliki tentang pembayaran, yang AxtonPay tidak diteruskan ke mana pun; hanya terlihat di daftar pembayaran; tidak dikirim kembali ke toko)
  • valid_time - interval waktu di mana faktur dapat dibayar; dalam detik
  • view_time - interval waktu selama faktur tersedia untuk dilihat melalui tautan eksternal; dalam detik; hitungan mundur dimulai setelah periode 'valid_time' berakhir
  • server_notification_method - metode mengirim notifikasi server-ke-server tentang status pembayaran ke toko; nilai yang valid: POST, GET

Beberapa pengaturan untuk faktur diatur di halaman pengaturan checkout. Tetapi nilai yang dikirim dalam permintaan akan memiliki prioritas dibandingkan pengaturan ini.

Parameter checkout yang dapat diganti untuk faktur ini:

  • customer_success_url - tautan yang akan dialihkan ke pembeli jika faktur berhasil dibayar (yaitu jika status faktur adalah 'paid' atau 'overpaid').
  • customer_cancel_url - tautan ke mana pembeli akan dialihkan jika pembayaran dibatalkan
  • customer_fail_url - tautan ke mana pembeli akan dialihkan jika pembayaran berakhir dengan kesalahan
  • server_notification_url - tautan untuk mengirim pemberitahuan status pembayaran server-ke-server ke toko

Catatan: Untuk mematuhi kebijakan privasi Anda sendiri, biasanya tidak perlu mencantumkan data pribadi pelanggan Anda dalam properti faktur. Misalnya, pada parameter "shop_user_id", lebih baik menentukan ID pelanggan abstrak daripada email atau nomor telepon mereka. Juga pada "shop_payment_desc", sebaiknya tidak mencantumkan data pelanggan sama sekali, karena mereka sudah mengetahui semuanya tentang diri mereka sendiri; sebaliknya, Anda bisa menulis beberapa informasi tentang barang atau layanan yang dibayar, atau bahkan hanya menulis jenis tindakan, misalnya, "Pembelian" atau "Isi ulang saldo".

Semua referensi harus dikirimkan dengan protokol.

Contoh permintaan:

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

Contoh tanggapan yang berhasil saat meminta pembuatan faktur:

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

Mendapatkan informasi faktur: /api/v1/private/checkout/payment/get/{PID}

Untuk mendapatkan informasi yang Anda butuhkan, panggil metode /api/v1/private/checkout/payment/get/{PID}, dengan menentukan PID faktur di akhir URL.

Parameter permintaan:

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

Contoh baris untuk membuat tanda tangan:

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

// String for signature calculation: 
time=1766837343

Contoh jawaban:

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

Perbandingan jumlah yang diminta dan jumlah yang dibayarkan

Tanggapan berisi beberapa jumlah yang berbeda (dalam mata uang tempat faktur diterbitkan):

  • "amount" - jumlah yang ditagihkan,
  • "filled" - membayar sebagian faktur,
  • "total_filled" - berapa total yang dibayarkan klien, termasuk komisi.

Jika "filled = amount", maka dibayar tepat sebanyak yang dibutuhkan.

Jika "filled > amount", ada kelebihan pembayaran.

Jika "filled < amount", faktur belum dibayar lunas (kurang bayar).

Faktur: pemrosesan pemberitahuan dari AxtonPay tentang perubahan status

Setiap kali status faktur diubah, AxtonPay mengirimkan notifikasi ke server_notification_url (menggunakan server_notification_method)

Contoh data:

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

Sebagai respons terhadap pemberitahuan ini AxtonPay mengharapkan untuk menerima HTTP code 200, yang mengonfirmasi penerimaan berhasilnya. Jika tidak, AxtonPay akan mencoba lagi 12 kali lebih pada interval yang meningkat secara bertahap, dan kemudian status pemberitahuan berubah menjadi 'error' (tetapi ini tidak memengaruhi status faktur itu sendiri).

Nilai status yang mungkin:

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

Status pembayaran yang berhasil adalah 1 (paid) dan 5 (overpaid); jika menerima status tersebut, Anda dapat mentransfer pembelian yang telah dibayar ke pelanggan atau mengisi ulang saldo. Untuk pembayaran dengan status 5 (overpaid), dalam hal pengisian ulang saldo, Anda dapat mengisi ulang saldo sebesar jumlah pembayaran yang benar-benar diterima, tetapi dalam hal penjualan barang/jasa dan jumlah kelebihan pembayaran yang signifikan, disarankan untuk menghubungi pembayaran dan memutuskan bersama bagaimana menangani kelebihan pembayaran tersebut.

Status berhasil sebagian adalah 4 (underpaid); jika menerima status ini, memungkinkan untuk mengisi ulang saldo sebesar jumlah pembayaran yang sebenarnya diterima. Namun, status ini tidak dapat dianggap berhasil untuk penjualan barang/jasa.

Semua status lainnya - 0 (pending), 2 (error), 3 (canceled by customer) berarti ketiadaan pembayaran sama sekali; jika diterima, tidak ada tindakan terkait pengisian saldo atau penjualan barang/jasa yang boleh dilakukan.

Pemeriksaan tanda tangan

Untuk memastikan bahwa notifikasi dikirim oleh AxtonPay secara tepat, perlu memverifikasi tanda tangan dari notifikasi yang diterima sebelum mempercayainya. Verifikasinya mirip dengan menandatangani permintaan Anda sendiri, hanya langkah terakhir yang ditambahkan, ketika Anda harus membandingkan tanda tangan yang dihitung dengan header HTTP yang diterima 'Sign'.

Langkah utama setelah menerima pemberitahuan tentang perubahan status pembayaran adalah sebagai berikut:

  • ambil seluruh rangkaian argumen (QUERY_STRING) dari notifikasi yang diterima,
  • ambil seluruh POST data (REQUEST_BODY) dari notifikasi yang diterima,
  • hitung tanda tangan menggunakan QUERY_STRING + REQUEST_BODY tersebut dan 'Secret key' yang sesuai,
  • bandingkan tanda tangan yang dihitung dengan yang diterima di header HTTP 'Sign',
  • jika tanda tangan sama, pemberitahuan itu memang berasal dari AxtonPay;
  • jika tanda tangan berbeda, itu mungkin merupakan upaya penipuan oleh pembayar.

Contoh sebuah baris untuk pembuatan tanda tangan:

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

Konfirmasi bahwa toko telah memproses informasi pembayaran: /api/v1/private/checkout/payment/confirm/{PID}

Permintaan ini dikirim ke AxtonPay sebagai tanggapan atas pemberitahuan yang diterima darinya. Secara fungsional, ini adalah konfirmasi bahwa toko telah berhasil menerima dan memproses pemberitahuan yang diterima.

Untuk mengirim permintaan, panggil metode /api/v1/private/checkout/payment/confirm/{PID}, dengan menentukan pid dari faktur di akhir URL.

Parameter permintaan:

  • time (diperlukan) - POSIX timestamp (Unix time)
  • status (diperlukan, bilangan bulat) - nomor status pembayaran yang dikirimkan konfirmasi oleh toko

Jika status yang dikirimkan sesuai dengan status saat ini dari faktur ini di sistem, AxtonPay akan merespons dengan 'OK' dan jika tidak sesuai, akan merespons dengan kesalahan.

Contoh sebuah baris untuk pembuatan tanda tangan:

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

Contoh tanggapan jika status pembayaran saat ini sama:

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

Contoh tanggapan jika status pembayaran saat ini berbeda dari yang dikirimkan dalam permintaan:

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

Kode mata uang

Mata uang yang dapat digunakan untuk pembuatan faktur.

Sebagian besar kode mata uang yang digunakan termasuk mata uang fiat, dan nilainya sama dengan ISO 4217. Daftar tersebut juga berisi beberapa cryptocurrency.

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