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