Document version: 0.9
Maklumat biasa
Titik akhir API
https://mp.axtonpay.com/api/v1/private/checkout
Content-type
API menerima HTTP permintaan dengan 2 jenis kandungan: 'application/x-www-form-urlencoded', 'application/json'.
Header HTTP harus sesuai dengan kandungan badan POST.
Singkatan dan definisi
- {PID} - ID invois, biasanya ia adalah urutan alfanumerik unik 8 aksara.
- Shop - Laman web anda yang menerima pembayaran melalui perkhidmatan AxtonPay
Algoritma bekerja dengan API
Susunan tindakan biasa untuk menerima pembayaran:
- buat invois ('/api/v1/private/checkout/payment/create'), maklum balas API akan memulangkan URL invois ('invoice_url'),
- hantar pembeli ke invois ini untuk membuat pembayaran,
- tunggu untuk AxtonPay notifikasi pelayan, yang akan datang ke 'server_notification_url',
- selepas menerima sebarang notifikasi daripada AxtonPay, periksa kesahihan tandatangannya dan sebaik-baiknya hantar pengesahan penerimaan kepada AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
- jika status invois diubah, lakukan tindakan yang sesuai dengan status ini (contohnya, minta maklumat penuh mengenai invois, hantar barang, buat tiket untuk pasukan sokongan, dan sebagainya).
Jika anda menetapkan 'server_notification_url' kosong atau tidak sah semasa membuat invois, perkhidmatan tidak dapat menghantar pemberitahuan mengenai perubahan status; dalam kes sedemikian, anda harus memeriksa invois itu sendiri pada selang tertentu ('/api/v1/private/checkout/payment/get/{PID}').
Kebenaran permintaan
Untuk membenarkan permintaan, adalah perlu untuk mengira Hash daripada satu string yang dibentuk dengan cara khas. String itu disusun dengan mencantumkan (melekatkan bersama) argumen URL (QUERY_STRING) dan badan permintaan POST (REQUEST_BODY). Adalah penting bahawa semua komponen diambil dengan tepat dalam bentuk yang akan dihantar ke pelayan. Argumen URL (QUERY_STRING) harus diambil dari URL sebagai satu baris tunggal, tanpa mengubah susunan argumen dan tanpa menghilangkan mana-mana unsur. Badan permintaan POST (REQUEST_BODY) juga harus digunakan tanpa sebarang pengubahsuaian, termasuk tidak menghapus daripada ia sebarang tanda petik, ruang, kurungan, atau jeda baris.
Dalam kes badan permintaan POST yang kosong, dan dalam kes argumen URL yang kosong, komponen itu hanya akan menjadi rentetan kosong.
Urutan data dalam permintaan tandatangan: QUERY_STRING dahulu, kemudian data POST. Anda tidak sepatutnya memasukkan sebarang tanda penyambung di antara mereka, hanya gabungkan dua rentetan teks itu.
Sekali lagi, setiap simbol adalah penting. Anda tidak seharusnya menambah atau mengurangkan walau satu ruang kosong atau simbol baris baru. Gunakan sahaja data mentah yang diterima oleh pelayan.
Sebuah SHA-256 hash dengan kekunci 'Secret key' diambil dari rentetan yang terhasil dan digunakan sebagai argumen kedua fungsi hash_hmac().
Adalah wajib untuk luluskan parameter 'time' yang mengandungi POSIX timestamp (Unix time) semasa.
Tandatangan ini sah selama 24 jam. Jika nilai parameter 'time' berbeza daripada masa pelayan semasa lebih daripada 24 jam (sama ada ke hadapan atau ke belakang), permintaan akan gagal walaupun tandatangan dikira tanpa ralat.
Jika panel peniaga telah menerima permintaan dengan beberapa tandatangan, tandatangan itu tidak boleh digunakan lagi, walaupun untuk menghantar permintaan dengan parameter yang sama (ini termasuk parameter 'time').
Hash yang terhasil dihantar dalam header HTTP 'Sign'.
Selain daripada tandatangan yang dikira, permintaan itu juga mesti mengandungi header 'Api-Key' yang mengandungi kunci API yang digunakan. Contoh:
$headers = [
'Api-Key: ' . $the_api_key,
'Sign: ' . $signature_sha256
];
Anda boleh menandatangani permintaan yang dihantar pada AxtonPay dengan mana-mana kunci sah yang dimiliki oleh pembayaran ini. Walau bagaimanapun, AxtonPay sentiasa menggunakan kunci yang telah anda pilih dalam panel pedagang.
Contoh pengiraan tandatangan:
/* 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' */
Perhatikan ruang putih dan baris baru dalam 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 untuk menyusun rentetan bagi pengiraan tandatangan:
string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'
Parameter
API menerima semua parameter sama ada dalam QUERY_STRING dan dalam badan permintaan POST.
Pembolehubah Boolean
API menjangka untuk menerima '0' atau '1' dalam pemboleh ubah Boolean, tetapi kerana penukaran jenis secara tersirat, mana-mana rentetan teks akan dianggap sebagai '1', walaupun perkataan 'false'. Oleh itu, untuk menetapkan secara jelas nilai 'FALSE' untuk pemboleh ubah Boolean, anda perlu memberikannya sama ada nilai '0' atau rentetan kosong.
Pemisah perpuluhan
Hanya titik perpuluhan digunakan sebagai pemisah perpuluhan dalam nombor.
Huruf besar dan kecil dalam parameter
Dengan beberapa pengecualian, semua parameter adalah sensitif huruf besar/kecil.
URL Panggilan Balik
Dalam panel pentadbir AxtonPay, di halaman tetapan pembayaran, adalah mungkin untuk menetapkan URL kedai untuk menerima pemberitahuan server-server daripada AxtonPay, serta URL untuk mengalihkan pembeli selepas pembayaran invois atau pembatalannya, serta sekiranya berlaku ralat.
URL ini boleh ditimpa dalam permintaan penciptaan invois.
Kaedah AxtonPay API
Penciptaan invois: /api/v1/private/checkout/payment/create
Kaedah /api/v1/private/checkout/payment/create memulakan penciptaan invois.
Jika berjaya, kaedah ini akan mengembalikan pautan ('invoice_url') yang patut anda hantar kepada pelanggan untuk pembayaran.
Parameter invois sendiri:
- time (diperlukan) - POSIX timestamp (Unix time)
- amount (diperlukan) - jumlah yang perlu dibayar (harga produk atau perkhidmatan yang ingin diterima oleh kedai)
- currency (diperlukan) - Kod mata wang 3 huruf mengikut ISO 4217-alpha, tidak mengira huruf besar atau kecil
- pms (diperlukan) - kaedah pembayaran yang dipaparkan di halaman invois. Jika anda ingin membenarkan semua kaedah pembayaran, nilainya adalah 'all'; jika anda hanya ingin membenarkan sebahagiannya, senaraikan pengecam nombor mereka yang dipisahkan dengan koma.
- pm - pengenal bagi kaedah pembayaran yang dipilih. Adalah penting bahawa jika parameter 'pm' dihantar, invois akan dibuat dalam 'mod telus', iaitu pembeli tidak akan melihat halaman invois, tetapi akan terus ke sistem pembayaran.
- extra_data - sebuah array berasosiasi yang mengandungi sebarang data tambahan; data ini dikembalikan kepada stor secara keseluruhan
- shop_user_id - pengenal pengguna di kedai, ia dikembalikan ke kedai dalam bentuk yang tidak berubah
- shop_payment_id - pengesah pembayaran di kedai, ia dikembalikan ke kedai dalam bentuk tidak berubah
- shop_name - nama kedai (dipaparkan di halaman invois)
- shop_payment_desc - penerangan pesanan (dipaparkan di halaman invois)
- shop_payment_remark - nota anda mengenai pembayaran ini (ini adalah ruangan untuk sebarang nota yang anda ada mengenai pembayaran, yang AxtonPay tidak dihantar ke mana-mana; ia hanya kelihatan dalam senarai pembayaran; ia tidak dikembalikan ke kedai)
- valid_time - selang masa di mana invois boleh dibayar; dalam saat
- view_time - selang masa di mana invois tersedia untuk dilihat melalui pautan luar; dalam saat; kira detik bermula selepas tempoh 'valid_time' berakhir
- server_notification_method - kaedah menghantar notifikasi pelayan-ke-pelayan mengenai status pembayaran kepada kedai; nilai sah: POST, GET
Beberapa tetapan untuk invois ditetapkan di halaman tetapan pembayaran. Tetapi nilai yang dihantar dalam permintaan akan diutamakan berbanding tetapan ini.
Parameter checkout yang boleh ditindih untuk invois ini:
- customer_success_url - pautan yang akan dialihkan kepada pembeli jika invois berjaya dibayar (iaitu jika status invois adalah 'paid' atau 'overpaid').
- customer_cancel_url - pautan yang mana pembeli akan diarahkan semula jika pembayaran dibatalkan
- customer_fail_url - pautan yang akan diarahkan kepada pembeli jika pembayaran berakhir dengan ralat
- server_notification_url - pautan untuk menghantar pemberitahuan status pembayaran server-ke-server ke kedai
Nota: Untuk mematuhi polisi privasi anda sendiri, biasanya tidak perlu memasukkan data peribadi pelanggan anda dalam sifat invois. Contohnya, dalam parameter "shop_user_id", adalah lebih baik untuk menyatakan ID pelanggan yang abstrak daripada emel atau nombor telefon mereka. Juga dalam "shop_payment_desc", adalah lebih baik untuk tidak memasukkan data pelanggan langsung, kerana mereka sudah mengetahui segala-galanya tentang diri mereka; sebaliknya, anda boleh menulis sedikit maklumat tentang barang atau perkhidmatan yang dibayar, atau hanya menulis jenis tindakan, contohnya, "Pembelian" atau "Tambah baki".
Semua rujukan perlu disampaikan bersama 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 tindak balas yang berjaya apabila meminta penciptaan invois:
{
"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 maklumat invois: /api/v1/private/checkout/payment/get/{PID}
Untuk mendapatkan maklumat yang anda perlukan, panggil kaedah /api/v1/private/checkout/payment/get/{PID}, dengan menyatakan PID invois di hujung URL.
Parameter permintaan:
- time (diperlukan) - POSIX timestamp (Unix time)
Contoh baris untuk menulis tandatangan:
// Full URL: https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343 // String for signature calculation: time=1766837343
Contoh jawapan:
{
"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 dibayar
Respons itu mengandungi beberapa jumlah berbeza (dalam mata wang di mana invois dikeluarkan):
- "amount" - jumlah yang ditagih,
- "filled" - membayar sebahagian daripada invois,
- "total_filled" - jumlah yang dibayar oleh pelanggan secara keseluruhan, termasuk komisen.
Jika "filled = amount", maka ia dibayar dengan tepat sebanyak yang diperlukan.
Jika "filled > amount", terdapat bayaran berlebihan.
Jika "filled < amount", invois belum dibayar sepenuhnya (bayaran kurang).
Invois: pemprosesan pemberitahuan dari AxtonPay mengenai perubahan status
Setiap kali status invois diubah, AxtonPay menghantar pemberitahuan kepada server_notification_url (menggunakan server_notification_method)
Data contoh:
{
"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 tindak balas kepada pemberitahuan ini AxtonPay dijangka akan menerima HTTP code 200, yang mengesahkan penerimaan yang berjaya. Jika tidak, AxtonPay akan mencuba semula 12 kali lagi pada selang masa yang semakin meningkat, dan kemudian status pemberitahuan berubah kepada 'error' (tetapi ini tidak menjejaskan status invois 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 berjaya adalah 1 (paid) dan 5 (overpaid); sekiranya diterima, anda boleh memindahkan pembelian yang telah dibayar kepada pelanggan atau menambah baki. Untuk pembayaran dengan status 5 (overpaid), sekiranya menambah baki, anda boleh menambah baki dengan jumlah pembayaran yang sebenarnya diterima, tetapi sekiranya penjualan barangan/perkhidmatan dan jumlah lebihan pembayaran yang ketara, adalah disyorkan untuk menghubungi pembayar dan membuat keputusan bersama tentang cara mengurus lebihan pembayaran tersebut.
Status separa berjaya adalah 4 (underpaid); sekiranya menerima status ini, adalah mungkin untuk menambah baki dengan jumlah pembayaran yang sebenarnya diterima. Walau bagaimanapun, status ini tidak boleh dianggap berjaya untuk penjualan barangan/perkhidmatan.
Semua status lain - 0 (pending), 2 (error), 3 (canceled by customer) bermaksud ketiadaan pembayaran sepenuhnya; sekiranya diterima, tiada tindakan untuk pengisian baki atau penjualan barang/perkhidmatan harus dilakukan.
Pemeriksaan tandatangan
Untuk memastikan pemberitahuan itu dihantar oleh AxtonPay dengan tepat, adalah perlu untuk mengesahkan tandatangan pemberitahuan yang diterima sebelum mempercayainya. Pengesahan adalah serupa dengan menandatangani permintaan anda sendiri, cuma langkah terakhir ditambah, apabila anda perlu membandingkan tandatangan yang dikira dengan header HTTP yang diterima 'Sign'.
Langkah utama selepas menerima pemberitahuan mengenai status pembayaran yang telah berubah adalah seperti berikut:
- ambil keseluruhan rentetan hujah (QUERY_STRING) daripada pemberitahuan yang diterima,
- ambil seluruh POST data (REQUEST_BODY) daripada pemberitahuan yang diterima,
- hitung tandatangan menggunakan QUERY_STRING + REQUEST_BODY itu dan 'Secret key' yang sesuai,
- bandingkan tandatangan yang dikira dengan yang diterima dalam pengepala HTTP 'Sign',
- jika tandatangan itu sama, pemberitahuan itu benar-benar datang dari AxtonPay;
- jika tandatangan berbeza, ia mungkin merupakan percubaan untuk menipu oleh pembayar.
Contoh baris untuk penjanaan tandatangan:
// 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
Pengesahan bahawa kedai telah memproses maklumat pembayaran: /api/v1/private/checkout/payment/confirm/{PID}
Permintaan ini dihantar kepada AxtonPay sebagai tindak balas kepada pemberitahuan yang diterimanya. Dari segi fungsinya, ia adalah pengesahan bahawa kedai telah berjaya menerima dan memproses pemberitahuan yang diterima.
Untuk menghantar permintaan, panggil kaedah /api/v1/private/checkout/payment/confirm/{PID}, dengan menyatakan pid invois di hujung URL.
Parameter permintaan:
- time (diperlukan) - POSIX timestamp (Unix time)
- status (diperlukan, nombor bulat) - nombor status pembayaran yang dihantar pengesahan oleh kedai
Jika status yang dihantar sepadan dengan status semasa invois ini dalam sistem, AxtonPay akan memberi respons dengan 'OK' dan jika ia tidak sepadan, ia akan memberi respons dengan ralat.
Contoh baris untuk penjanaan tandatangan:
// 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 jawapan jika status pembayaran semasa adalah sama:
{
"status": "ok",
"data": "\"Paid\" status notification is confirmed"
}
Contoh jawapan jika status pembayaran semasa berbeza daripada yang dihantar dalam permintaan:
{
"status": "error",
"message": "Something went wrong"
}
Kod mata wang
Mata wang yang boleh digunakan untuk penciptaan invois.
Kebanyakan kod mata wang yang digunakan adalah milik mata wang fiat, dan ia adalah sama dengan ISO 4217. Senarai itu juga mengandungi beberapa mata wang kripto.
| Kod | Nama | Digit perpuluhan | Jenis |
| BCH | Bitcoin Cash | 8 | Mata wang kripto |
| BLK | Blackcoin | 8 | Mata wang kripto |
| BNB | Binancecoin | 18 | Mata wang kripto |
| BTC | Bitcoin | 8 | Mata wang kripto |
| BTT | BitTorrent | 18 | Token kripto |
| BUSD | Binance USD | 18 | Token kripto |
| DAI | Dai | 18 | Token kripto |
| DASH | Dash | 8 | Mata wang kripto |
| DOGE | Dogecoin | 8 | Mata wang kripto |
| ETC | Ethereum Classic | 18 | Mata wang kripto |
| ETH | Ethereum | 18 | Mata wang kripto |
| LTC | Litecoin | 8 | Mata wang kripto |
| NLG | Gulden | 8 | Mata wang kripto |
| RDD | ReddCoin | 8 | Mata wang kripto |
| TRX | Tron | 6 | Mata wang kripto |
| USDC | USD Coin | 6 | Token kripto |
| USDD | Decentralized USD | 18 | Token kripto |
| USDT | Tether USDT | 6 | Token kripto |
| VTC | Vertcoin | 8 | Mata wang kripto |
| XVG | Verge | 8 | Mata wang kripto |
| AED | United Arab Emirates dirham | 2 | Mata wang fiat |
| AFN | Afghan afghani | 2 | Mata wang fiat |
| ALL | Albanian lek | 2 | Mata wang fiat |
| AMD | Armenian dram | 2 | Mata wang fiat |
| ANG | Netherlands Antillean guilder | 2 | Mata wang fiat |
| AOA | Angolan kwanza | 2 | Mata wang fiat |
| ARS | Argentine peso | 2 | Mata wang fiat |
| AUD | Australian dollar | 2 | Mata wang fiat |
| AWG | Aruban florin | 2 | Mata wang fiat |
| AZN | Azerbaijani manat | 2 | Mata wang fiat |
| BAM | Bosnia and Herzegovina convertible mark | 2 | Mata wang fiat |
| BBD | Barbados dollar | 2 | Mata wang fiat |
| BDT | Bangladeshi taka | 2 | Mata wang fiat |
| BGN | Bulgarian lev | 2 | Mata wang fiat |
| BHD | Bahraini dinar | 3 | Mata wang fiat |
| BIF | Burundian franc | 2 | Mata wang fiat |
| BMD | Bermudian dollar | 2 | Mata wang fiat |
| BND | Brunei dollar | 2 | Mata wang fiat |
| BOB | Boliviano | 2 | Mata wang fiat |
| BRL | Brazilian real | 2 | Mata wang fiat |
| BSD | Bahamian dollar | 2 | Mata wang fiat |
| BTN | Bhutanese ngultrum | 2 | Mata wang fiat |
| BWP | Botswana pula | 2 | Mata wang fiat |
| BYN | Belarusian ruble | 2 | Mata wang fiat |
| BZD | Belize dollar | 2 | Mata wang fiat |
| CAD | Canadian dollar | 2 | Mata wang fiat |
| CDF | Congolese franc | 2 | Mata wang fiat |
| CHF | Swiss franc | 2 | Mata wang fiat |
| CLP | Chilean peso | 2 | Mata wang fiat |
| CNY | Renminbi (Chinese) yuan | 2 | Mata wang fiat |
| COP | Colombian peso | 2 | Mata wang fiat |
| CRC | Costa Rican colon | 2 | Mata wang fiat |
| CUC | Cuban convertible peso | 2 | Mata wang fiat |
| CUP | Cuban peso | 2 | Mata wang fiat |
| CVE | Cape Verde escudo | 2 | Mata wang fiat |
| CZK | Czech koruna | 2 | Mata wang fiat |
| DJF | Djiboutian franc | 2 | Mata wang fiat |
| DKK | Danish krone | 2 | Mata wang fiat |
| DOP | Dominican peso | 2 | Mata wang fiat |
| DZD | Algerian dinar | 2 | Mata wang fiat |
| EGP | Egyptian pound | 2 | Mata wang fiat |
| ERN | Eritrean nakfa | 2 | Mata wang fiat |
| ETB | Ethiopian birr | 2 | Mata wang fiat |
| EUR | Euro | 2 | Mata wang fiat |
| FJD | Fiji dollar | 2 | Mata wang fiat |
| FKP | Falkland Islands pound | 2 | Mata wang fiat |
| GBP | Pound sterling | 2 | Mata wang fiat |
| GEL | Georgian lari | 2 | Mata wang fiat |
| GHS | Ghanaian cedi | 2 | Mata wang fiat |
| GIP | Gibraltar pound | 2 | Mata wang fiat |
| GMD | Gambian dalasi | 2 | Mata wang fiat |
| GNF | Guinean franc | 0 | Mata wang fiat |
| GTQ | Guatemalan quetzal | 2 | Mata wang fiat |
| GYD | Guyanese dollar | 2 | Mata wang fiat |
| HKD | Hong Kong dollar | 2 | Mata wang fiat |
| HNL | Honduran lempira | 2 | Mata wang fiat |
| HRK | Croatian kuna | 2 | Mata wang fiat |
| HTG | Haitian gourde | 2 | Mata wang fiat |
| HUF | Hungarian forint | 2 | Mata wang fiat |
| IDR | Indonesian rupiah | 2 | Mata wang fiat |
| ILS | Israeli new shekel | 2 | Mata wang fiat |
| INR | Indian rupee | 2 | Mata wang fiat |
| IQD | Iraqi dinar | 3 | Mata wang fiat |
| IRR | Iranian rial | 2 | Mata wang fiat |
| ISK | Icelandic krona | 2 | Mata wang fiat |
| JMD | Jamaican dollar | 2 | Mata wang fiat |
| JOD | Jordanian dinar | 3 | Mata wang fiat |
| JPY | Japanese yen | 3 | Mata wang fiat |
| KES | Kenyan shilling | 2 | Mata wang fiat |
| KGS | Kyrgyzstani som | 2 | Mata wang fiat |
| KHR | Cambodian riel | 2 | Mata wang fiat |
| KMF | Comoro franc | 2 | Mata wang fiat |
| KPW | North Korean won | 2 | Mata wang fiat |
| KRW | South Korean won | 2 | Mata wang fiat |
| KWD | Kuwaiti dinar | 3 | Mata wang fiat |
| KYD | Cayman Islands dollar | 2 | Mata wang fiat |
| KZT | Kazakhstani tenge | 2 | Mata wang fiat |
| LAK | Lao kip | 2 | Mata wang fiat |
| LBP | Lebanese pound | 2 | Mata wang fiat |
| LKR | Sri Lankan rupee | 2 | Mata wang fiat |
| LRD | Liberian dollar | 2 | Mata wang fiat |
| LSL | Lesotho loti | 2 | Mata wang fiat |
| LYD | Libyan dinar | 3 | Mata wang fiat |
| MAD | Moroccan dirham | 2 | Mata wang fiat |
| MDL | Moldovan leu | 2 | Mata wang fiat |
| MGA | Malagasy ariary | 2 | Mata wang fiat |
| MKD | Macedonian denar | 2 | Mata wang fiat |
| MMK | Myanmar kyat | 2 | Mata wang fiat |
| MNT | Mongolian togrog | 2 | Mata wang fiat |
| MOP | Macanese pataca | 2 | Mata wang fiat |
| MRU | Mauritanian ouguiya | 2 | Mata wang fiat |
| MUR | Mauritian rupee | 2 | Mata wang fiat |
| MVR | Maldivian rufiyaa | 2 | Mata wang fiat |
| MWK | Malawian kwacha | 2 | Mata wang fiat |
| MXN | Mexican peso | 2 | Mata wang fiat |
| MYR | Malaysian ringgit | 2 | Mata wang fiat |
| MZN | Mozambican metical | 2 | Mata wang fiat |
| NAD | Namibian dollar | 2 | Mata wang fiat |
| NGN | Nigerian naira | 2 | Mata wang fiat |
| NIO | Nicaraguan cordoba | 2 | Mata wang fiat |
| NOK | Norwegian krone | 2 | Mata wang fiat |
| NPR | Nepalese rupee | 2 | Mata wang fiat |
| NZD | New Zealand dollar | 2 | Mata wang fiat |
| OMR | Omani rial | 3 | Mata wang fiat |
| PAB | Panamanian balboa | 2 | Mata wang fiat |
| PEN | Peruvian sol | 2 | Mata wang fiat |
| PGK | Papua New Guinean kina | 2 | Mata wang fiat |
| PHP | Philippine peso | 2 | Mata wang fiat |
| PKR | Pakistani rupee | 2 | Mata wang fiat |
| PLN | Polish zloty | 2 | Mata wang fiat |
| PYG | Paraguayan guarani | 2 | Mata wang fiat |
| QAR | Qatari riyal | 2 | Mata wang fiat |
| RON | Romanian leu | 2 | Mata wang fiat |
| RSD | Serbian dinar | 2 | Mata wang fiat |
| RUB | Russian ruble | 2 | Mata wang fiat |
| RWF | Rwandan franc | 2 | Mata wang fiat |
| SAR | Saudi riyal | 2 | Mata wang fiat |
| SBD | Solomon Islands dollar | 2 | Mata wang fiat |
| SCR | Seychelles rupee | 2 | Mata wang fiat |
| SDG | Sudanese pound | 2 | Mata wang fiat |
| SEK | Swedish krona/kronor | 2 | Mata wang fiat |
| SGD | Singapore dollar | 2 | Mata wang fiat |
| SHP | Saint Helena pound | 2 | Mata wang fiat |
| SLL | Sierra Leonean leone | 2 | Mata wang fiat |
| SOS | Somali shilling | 2 | Mata wang fiat |
| SRD | Surinamese dollar | 2 | Mata wang fiat |
| SSP | South Sudanese pound | 2 | Mata wang fiat |
| STN | Sao Tome and Pricipe dobra | 2 | Mata wang fiat |
| SVC | Salvadoran colon | 2 | Mata wang fiat |
| SYP | Syrian pound | 2 | Mata wang fiat |
| SZL | Swazi lilangeni | 2 | Mata wang fiat |
| THB | Thai baht | 2 | Mata wang fiat |
| TJS | Tajikistani somoni | 2 | Mata wang fiat |
| TMT | Turkmenistan manat | 2 | Mata wang fiat |
| TND | Tunisian dinar | 3 | Mata wang fiat |
| TOP | Tongan paanga | 2 | Mata wang fiat |
| TRY | Turkish lira | 2 | Mata wang fiat |
| TTD | Trinidad and Tobago dollar | 2 | Mata wang fiat |
| TWD | New Taiwan dollar | 2 | Mata wang fiat |
| TZS | Tanzanian shilling | 2 | Mata wang fiat |
| UAH | Ukrainian hryvnia | 2 | Mata wang fiat |
| UGX | Ugandan shilling | 0 | Mata wang fiat |
| USD | United States dollar | 2 | Mata wang fiat |
| UYU | Uruguayan peso | 2 | Mata wang fiat |
| UZS | Uzbekistan som | 2 | Mata wang fiat |
| VES | Venezuelan bolivar soberano | 2 | Mata wang fiat |
| VND | Vietnamese dong | 2 | Mata wang fiat |
| VUV | Vanuatu vatu | 0 | Mata wang fiat |
| WST | Samoan tala | 2 | Mata wang fiat |
| XAF | CFA franc BEAC | 3 | Mata wang fiat |
| XCD | East Caribbean dollar | 2 | Mata wang fiat |
| XOF | CFA franc BCEAO | 2 | Mata wang fiat |
| XPF | CFP franc (franc Pacifique) | 3 | Mata wang fiat |
| XTS | Kod yang dikhaskan khas untuk tujuan ujian | 2 | Kod terpelihara |
| XXX | Kod yang ditetapkan untuk transaksi di mana tiada mata wang terlibat | 2 | Kod terpelihara |
| YER | Yemeni rial | 2 | Mata wang fiat |
| ZAR | South African rand | 2 | Mata wang fiat |
| ZMW | Zambian kwacha | 2 | Mata wang fiat |
| ZWL | Zimbabwean dollar | 2 | Mata wang fiat |
