Document version: 0.9
Ortak bilgi
API uç noktası
https://mp.axtonpay.com/api/v1/private/checkout
Content-type
API, 2 içerik türü ile HTTP istekleri kabul eder: 'application/x-www-form-urlencoded', 'application/json'.
HTTP başlığı, POST içeriğine uymalı.
Kısaltmalar ve tanımlar
- {PID} - Faturanın kimliği, genellikle benzersiz 8 karakterli alfa numerik dizidir.
- Shop - Ödemeleri AxtonPay hizmeti üzerinden kabul eden web siteniz
API ile çalışma algoritması
Ödeme almak için sıradan işlem sırası:
- bir fatura oluşturun ('/api/v1/private/checkout/payment/create'), API yanıtı fatura URL'sini döndürecektir ('invoice_url'),
- ödeme yapmak için alıcıyı bu faturaya yönlendirin,
- AxtonPay sunucu bildirimlerini bekleyin, bunlar 'server_notification_url''e gelecek.
- AxtonPay'den herhangi bir bildirim alındığında, imzasının geçerliliğini kontrol edin ve tercihen AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}')'ya alındı onayı gönderin.
- Bir faturanın durumu değiştiğinde, bu duruma karşılık gelen işlemleri gerçekleştirin (ör. fatura hakkında tam bilgi talep edin, ürünleri gönderin, destek ekibine bir bilet oluşturun, vb.).
Bir fatura oluştururken boş veya geçersiz bir 'server_notification_url' ayarlarsanız, hizmet durum değişiklikleri hakkında bildirim gönderemez; bu gibi durumlarda, faturayı belirli aralıklarla kendiniz kontrol etmelisiniz ('/api/v1/private/checkout/payment/get/{PID}').
İsteklerin yetkilendirilmesi
Bir isteği yetkilendirmek için, özel bir şekilde oluşturulmuş bir dizeden bir Hash hesaplamak gereklidir. Dize, URL argümanlarının (QUERY_STRING) ve POST isteğin gövdesinin (REQUEST_BODY) birleştirilmesiyle (yapıştırılmasıyla) oluşur. Tüm bileşenlerin, sunucuya iletilirken alacakları biçimde tam olarak alınması önemlidir. URL argümanları (QUERY_STRING), URL'den tek satır halinde alınmalı, argümanların sırası değiştirilmemeli ve hiçbir öğe atlanmamalıdır. POST isteğin gövdesi (REQUEST_BODY) de herhangi bir değişiklik yapılmadan kullanılmalı, buna alıntılar, boşluklar, parantezler ve satır sonları da dahil edilmelidir.
Boş bir POST istek gövdesi durumunda ve boş URL argümanları durumunda, o bileşen sadece boş bir string olacaktır.
İmza isteğindeki veri dizisi: QUERY_STRING önce, sonra POST verisi. Aralarına herhangi bir bağlayıcı işaret eklememelisiniz, sadece iki metin dizisini birleştirin.
Bir kez daha, her sembol önemlidir. Hatta bir boşluk ya da yeni satır sembolü eklememeli veya çıkarmamalısınız. Sadece sunucu tarafından alınan ham veriyi kullanın.
Ortaya çıkan dizgeden 'Secret key' anahtarıyla bir SHA-256 hash alınır ve fonksiyon hash_hmac()'in ikinci argümanı olarak kullanılır.
Mevcut POSIX timestamp (Unix time)'i içeren 'time' parametresini geçirmek zorunludur.
Bu imza 24 saat geçerlidir. 'time' parametresinin değeri mevcut sunucu zamanından 24 saatten fazla farklıysa (ileri ya da geri), imza hatasız hesaplansa bile istek başarısız olacaktır.
Eğer satıcı paneli, bazı imzalarla bir isteği kabul etmişse, o imza tekrar kullanılamaz, aynı parametrelerle isteği göndermek için bile (bu, 'time' parametresini içerir).
Ortaya çıkan hash, HTTP başlığında 'Sign' iletilir.
Hesaplanan imzaya ek olarak, istek ayrıca kullanılan API anahtarını içeren bir 'Api-Key' başlık da içermelidir. Örnek:
$headers = [
'Api-Key: ' . $the_api_key,
'Sign: ' . $signature_sha256
];
Bu ödeme isteğine, bu ödeme işlemine ait herhangi geçerli bir anahtarla imza atabilirsiniz. Ancak AxtonPay her zaman satıcı panelinde seçtiğiniz anahtarı kullanır.
İmza hesaplama örneği:
/* 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' */
Başka bir örnekte boşluklara ve satır sonlarına dikkat edin:
/*
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"
}'
*/
İmza hesaplaması için string oluşturmanın Python örneği:
string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'
Parametreler
API, tüm parametreleri hem QUERY_STRING içinde hem de POST isteğinin gövdesinde kabul eder.
Boolean değişkenler
API, Boolean değişkenlerinde '0' veya '1' almayı bekliyor, ancak örtülü tür dönüşümü nedeniyle, herhangi bir metin dizisi '1' olarak kabul edilir, hatta 'false' kelimesi bile. Bu nedenle, bir Boolean değişkenine açık bir 'FALSE' değeri atamak için, ya değeri '0' göndermeniz ya da boş bir dize iletmeniz gerekir.
Ondalık ayırıcı
Sayılerde ondalık ayırıcı olarak yalnızca ondalık nokta kullanılır.
Parametrelerde karakter durumu
Birkaç istisna dışında, tüm parametreler büyük/küçük harfe duyarlıdır.
Geri Arama URL'si
AxtonPay yönetici panelinde, ödeme ayarları sayfasında, AxtonPay'den sunucu-sunucu bildirimleri almak için mağaza URL'lerini ayarlamak ve ayrıca fatura ödemesi sonrası veya iptali durumunda alıcıyı yönlendirmek için URL'leri, ayrıca bir hata durumunda URL'leri ayarlamak mümkündür.
Bu URL'ler fatura oluşturma isteğinde geçersiz kılınabilir.
AxtonPay API Yöntemleri
Fatura oluşturma: /api/v1/private/checkout/payment/create
Yöntem /api/v1/private/checkout/payment/create fatura oluşturmayı başlatır.
Başarılı olursa, yöntem, müşteriyi ödeme yapması için yönlendirmeniz gereken bir bağlantı ('invoice_url') döndürür.
Kendi fatura parametreleri:
- time (zorunlu) - POSIX timestamp (Unix time)
- amount (zorunlu) - ödenecek tutar (mağazanın almak istediği ürün veya hizmetin fiyatı)
- currency (zorunlu) - ISO 4217-alpha'e göre 3 harfli para birimi kodu, büyük/küçük harf duyarsız
- pms (zorunlu) - Fatura sayfasında görüntülenen ödeme yöntemleri. Tüm ödeme yöntemlerine izin vermek istiyorsanız, değer 'all'; yalnızca bazılarına izin vermek istiyorsanız, bunların virgülle ayrılmış sayısal kimliklerini listeleyin.
- pm - Seçilen ödeme yönteminin tanımlayıcısı. Eğer 'pm' parametresi geçilirse, faturanın 'şeffaf modda' oluşturulması önemlidir; yani alıcı fatura sayfasını görmeyecek, doğrudan ödeme sistemine geçecektir.
- extra_data - herhangi ek verileri içeren ilişkili bir dizi; bu veriler mağazaya tamamen geri gönderilir
- shop_user_id - Mağazadaki kullanıcı tanımlayıcısı, değişmeden mağazaya geri döndürülür
- shop_payment_id - Mağazadaki ödeme tanımlayıcısı, mağazaya değişmeden geri gönderilir
- shop_name - mağaza adı (fatura sayfasında görüntülenir)
- shop_payment_desc - sipariş açıklaması (fatura sayfasında görüntülenir)
- shop_payment_remark - bu ödeme ile ilgili notlarınız (bu, ödemenizle ilgili sahip olduğunuz herhangi bir not için bir alandır; AxtonPay bunu hiçbir yere iletmez; sadece ödeme listesinde görünür; mağazaya geri gitmez)
- valid_time - faturanın ödenebileceği zaman aralığı; saniye cinsinden
- view_time - faturanın harici bağlantı üzerinden görüntülenebileceği zaman aralığı; saniye cinsinden; geri sayım 'valid_time' süresi sona erdikten sonra başlar
- server_notification_method - ödeme durumları hakkında mağazaya sunucu-sunucu bildirimleri göndermenin yöntemi; geçerli değerler: POST, GET
Fatura ile ilgili bazı ayarlar ödeme sayfası ayarları sayfasında yapılır. Ancak, istekte gönderilen değerler bu ayarlardan önce gelir.
Bu fatura için üzerine yazılabilecek ödeme sayfası parametreleri:
- customer_success_url - Fatura başarıyla ödendiğinde alıcının yönlendirileceği bir bağlantı (yani fatura durumu 'paid' veya 'overpaid' ise).
- customer_cancel_url - ödeme iptal edilirse alıcının yönlendirileceği bir bağlantı
- customer_fail_url - ödeme bir hatayla sonuçlanırsa alıcının yönlendirileceği bir bağlantı
- server_notification_url - ödeme durumlarıyla ilgili sunucudan sunucuya bildirimlerin mağazaya gönderilmesi için bağlantı
Not: Kendi gizlilik politikanıza uymak için, genellikle müşterinizin kişisel verilerini fatura özelliklerine dahil etmeniz gerekmez. Örneğin, "shop_user_id" parametresinde müşteri e-posta adresi veya telefon numarası yerine soyut bir müşteri kimliği belirtmek daha iyidir. Ayrıca "shop_payment_desc" içinde, müşteri verilerini hiç dahil etmemek daha iyidir, çünkü zaten kendileri hakkında her şeyi bilirler; onun yerine, ödediğiniz mal veya hizmetler hakkında bazı bilgiler yazabilir veya sadece işlem türünü yazabilirsiniz, örneğin, "Satın Alma" veya "Bakiye Yükleme".
Tüm referanslar zorunlu olarak protokolle iletilir.
İstek örneği:
<?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);
?>
Bir fatura oluşturulmasını talep ederken başarılı bir yanıt örneği:
{
"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"
}
Fatura bilgisi alma: /api/v1/private/checkout/payment/get/{PID}
Gerekli bilgiyi almak için, URL'nin sonunda faturanın PID belirterek /api/v1/private/checkout/payment/get/{PID} metodunu çağırmanız gerekir.
Sorgu parametreleri:
- time (zorunlu) - POSIX timestamp (Unix time)
Bir imza oluşturmak için bir satır örneği:
// Full URL: https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343 // String for signature calculation: time=1766837343
Bir cevabın örneği:
{
"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"
}
}
Talep edilen miktar ile ödenen miktarın karşılaştırılması
Yanıt, çeşitli farklı miktarlar içerir (faturanın düzenlendiği para biriminde):
- "amount" - faturalandırılan tutar,
- "filled" - faturanın bir kısmını ödedi,
- "total_filled" - Komisyonlar dahil olmak üzere müşterinin toplam ne kadar ödediği.
Eğer "filled = amount" ise, o zaman tam olarak ihtiyaç duyulduğu kadar ödenir.
Eğer "filled > amount" ise, bir fazla ödeme vardır.
Eğer "filled < amount", fatura tamamen ödenmemiştir (eksik ödeme).
Fatura: Durum değişikliği hakkında AxtonPay'den gelen bildirimin işlenmesi
Her fatura durumu değiştiğinde, AxtonPay server_notification_method kullanarak server_notification_url'a bir bildirim gönderir
Örnek veri:
{
"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"
}
Bu bildirime yanıt olarak AxtonPay, başarılı alındığını doğrulayan HTTP code 200 almayı bekler. Aksi takdirde, AxtonPay kademeli olarak artan aralıklarla 12 kez daha deneyecek ve ardından bildirim durumu 'error' olarak değişecektir (ancak bu, faturanın kendisinin durumunu etkilemez).
Olası durum değerleri:
- 0 - pending
- 1 - paid
- 2 - error
- 3 - cancelled by customer
- 4 - underpaid
- 5 - overpaid
- 8 - expired
Başarılı ödeme durumları 1 (paid) ve 5 (overpaid)’dir; bu durumların alınması durumunda ödenmiş satın alımı müşteriye aktarabilir veya bakiyeyi doldurabilirsiniz. 5 (overpaid) durumundaki ödemeler için, bakiye doldurma durumunda alınan ödeme tutarı kadar bakiyeyi doldurabilirsiniz, ancak mal/hizmet satışı ve önemli miktarda fazla ödeme durumunda, ödeyenle iletişime geçerek fazla ödemeyle nasıl başa çıkılacağına karar vermek tavsiye edilir.
Kısmen başarılı durum 4 (underpaid); bu durumu aldığınızda, aslında alınan ödeme tutarı kadar bakiyeyi yüklemek mümkündür. Ancak, bu durum mal/hizmet satışında başarılı olarak kabul edilemez.
Diğer tüm statüler - 0 (pending), 2 (error), 3 (canceled by customer) ödeme tamamen yok anlamına gelir; bunların alınması durumunda bakiye yenileme veya mal/hizmet satışı ile ilgili herhangi bir işlem yapılmamalıdır.
İmza kontrolü
AxtonPay tarafından bildirimin doğru şekilde gönderildiğinden emin olmak için, güvenmeden önce alınan bildirimin imzasını doğrulamak gereklidir. Doğrulama, kendi taleplerinizi imzalamanıza benzer; sadece son adım eklenir, bu adımda hesaplanan imzayı alınan HTTP başlığı ile karşılaştırmalısınız 'Sign'.
Ödeme durumunun değiştiğine dair bildirim alındıktan sonra ana adımlar şunlardır:
- alınan bildiriden tüm argüman dizisini (QUERY_STRING) alın,
- alınan bildirimden tüm POST data (REQUEST_BODY) öğesini alın,
- bu QUERY_STRING + REQUEST_BODY ve uygun 'Secret key' kullanarak imzayı hesaplayın,
- hesaplanan imzayı HTTP başlığında alınan ile karşılaştır 'Sign',
- imzalar aynıysa, bildirim gerçekten AxtonPay'den gelmiş demektir;
- Eğer imzalar farklıysa, bu, ödeyen tarafından bir hile girişimi olabilir.
İmza oluşturma için bir satır örneği:
// 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
Mağazanın ödeme bilgilerini işleme aldığını onaylama: /api/v1/private/checkout/payment/confirm/{PID}
Bu istek, ondan alınan bir bildirime yanıt olarak AxtonPay gönderilir. İşlevsel olarak, mağazanın alınan bildirimi başarıyla aldığı ve işlediğini onaylamasıdır.
Bir istek göndermek için, URL'nin sonunda faturanın pid'sini belirterek /api/v1/private/checkout/payment/confirm/{PID} yöntemini çağırın.
İstek parametreleri:
- time (zorunlu) - POSIX timestamp (Unix time)
- status (gerekli, tam sayı) - mağazanın onay gönderdiği ödeme durumu numarası
Eğer iletilen durum sistemdeki bu faturanın mevcut durumu ile eşleşiyorsa, AxtonPay 'OK' ile yanıt verecek ve eşleşmiyorsa bir hata ile yanıt verecektir.
İmza oluşturma için bir satır örneği:
// 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"}
Mevcut ödeme durumu aynıysa bir yanıt örneği:
{
"status": "ok",
"data": "\"Paid\" status notification is confirmed"
}
Eğer mevcut ödeme durumu, istekte iletilen durumdan farklıysa bir yanıt örneği:
{
"status": "error",
"message": "Something went wrong"
}
Para birimi kodları
Fatura oluşturmada kullanılabilecek para birimleri.
Kullanılan para birimi kodlarının çoğu fiat para birimlerine aittir ve ISO 4217 ile eşittir. Ayrıca liste birkaç kripto para birimi de içerir.
| Kod | İsim | Ondalık basamaklar | Tür |
| BCH | Bitcoin Cash | 8 | Kripto para |
| BLK | Blackcoin | 8 | Kripto para |
| BNB | Binancecoin | 18 | Kripto para |
| BTC | Bitcoin | 8 | Kripto para |
| BTT | BitTorrent | 18 | Kripto jeton |
| BUSD | Binance USD | 18 | Kripto jeton |
| DAI | Dai | 18 | Kripto jeton |
| DASH | Dash | 8 | Kripto para |
| DOGE | Dogecoin | 8 | Kripto para |
| ETC | Ethereum Classic | 18 | Kripto para |
| ETH | Ethereum | 18 | Kripto para |
| LTC | Litecoin | 8 | Kripto para |
| NLG | Gulden | 8 | Kripto para |
| RDD | ReddCoin | 8 | Kripto para |
| TRX | Tron | 6 | Kripto para |
| USDC | USD Coin | 6 | Kripto jeton |
| USDD | Decentralized USD | 18 | Kripto jeton |
| USDT | Tether USDT | 6 | Kripto jeton |
| VTC | Vertcoin | 8 | Kripto para |
| XVG | Verge | 8 | Kripto para |
| AED | United Arab Emirates dirham | 2 | Resmi para |
| AFN | Afghan afghani | 2 | Resmi para |
| ALL | Albanian lek | 2 | Resmi para |
| AMD | Armenian dram | 2 | Resmi para |
| ANG | Netherlands Antillean guilder | 2 | Resmi para |
| AOA | Angolan kwanza | 2 | Resmi para |
| ARS | Argentine peso | 2 | Resmi para |
| AUD | Australian dollar | 2 | Resmi para |
| AWG | Aruban florin | 2 | Resmi para |
| AZN | Azerbaijani manat | 2 | Resmi para |
| BAM | Bosnia and Herzegovina convertible mark | 2 | Resmi para |
| BBD | Barbados dollar | 2 | Resmi para |
| BDT | Bangladeshi taka | 2 | Resmi para |
| BGN | Bulgarian lev | 2 | Resmi para |
| BHD | Bahraini dinar | 3 | Resmi para |
| BIF | Burundian franc | 2 | Resmi para |
| BMD | Bermudian dollar | 2 | Resmi para |
| BND | Brunei dollar | 2 | Resmi para |
| BOB | Boliviano | 2 | Resmi para |
| BRL | Brazilian real | 2 | Resmi para |
| BSD | Bahamian dollar | 2 | Resmi para |
| BTN | Bhutanese ngultrum | 2 | Resmi para |
| BWP | Botswana pula | 2 | Resmi para |
| BYN | Belarusian ruble | 2 | Resmi para |
| BZD | Belize dollar | 2 | Resmi para |
| CAD | Canadian dollar | 2 | Resmi para |
| CDF | Congolese franc | 2 | Resmi para |
| CHF | Swiss franc | 2 | Resmi para |
| CLP | Chilean peso | 2 | Resmi para |
| CNY | Renminbi (Chinese) yuan | 2 | Resmi para |
| COP | Colombian peso | 2 | Resmi para |
| CRC | Costa Rican colon | 2 | Resmi para |
| CUC | Cuban convertible peso | 2 | Resmi para |
| CUP | Cuban peso | 2 | Resmi para |
| CVE | Cape Verde escudo | 2 | Resmi para |
| CZK | Czech koruna | 2 | Resmi para |
| DJF | Djiboutian franc | 2 | Resmi para |
| DKK | Danish krone | 2 | Resmi para |
| DOP | Dominican peso | 2 | Resmi para |
| DZD | Algerian dinar | 2 | Resmi para |
| EGP | Egyptian pound | 2 | Resmi para |
| ERN | Eritrean nakfa | 2 | Resmi para |
| ETB | Ethiopian birr | 2 | Resmi para |
| EUR | Euro | 2 | Resmi para |
| FJD | Fiji dollar | 2 | Resmi para |
| FKP | Falkland Islands pound | 2 | Resmi para |
| GBP | Pound sterling | 2 | Resmi para |
| GEL | Georgian lari | 2 | Resmi para |
| GHS | Ghanaian cedi | 2 | Resmi para |
| GIP | Gibraltar pound | 2 | Resmi para |
| GMD | Gambian dalasi | 2 | Resmi para |
| GNF | Guinean franc | 0 | Resmi para |
| GTQ | Guatemalan quetzal | 2 | Resmi para |
| GYD | Guyanese dollar | 2 | Resmi para |
| HKD | Hong Kong dollar | 2 | Resmi para |
| HNL | Honduran lempira | 2 | Resmi para |
| HRK | Croatian kuna | 2 | Resmi para |
| HTG | Haitian gourde | 2 | Resmi para |
| HUF | Hungarian forint | 2 | Resmi para |
| IDR | Indonesian rupiah | 2 | Resmi para |
| ILS | Israeli new shekel | 2 | Resmi para |
| INR | Indian rupee | 2 | Resmi para |
| IQD | Iraqi dinar | 3 | Resmi para |
| IRR | Iranian rial | 2 | Resmi para |
| ISK | Icelandic krona | 2 | Resmi para |
| JMD | Jamaican dollar | 2 | Resmi para |
| JOD | Jordanian dinar | 3 | Resmi para |
| JPY | Japanese yen | 3 | Resmi para |
| KES | Kenyan shilling | 2 | Resmi para |
| KGS | Kyrgyzstani som | 2 | Resmi para |
| KHR | Cambodian riel | 2 | Resmi para |
| KMF | Comoro franc | 2 | Resmi para |
| KPW | North Korean won | 2 | Resmi para |
| KRW | South Korean won | 2 | Resmi para |
| KWD | Kuwaiti dinar | 3 | Resmi para |
| KYD | Cayman Islands dollar | 2 | Resmi para |
| KZT | Kazakhstani tenge | 2 | Resmi para |
| LAK | Lao kip | 2 | Resmi para |
| LBP | Lebanese pound | 2 | Resmi para |
| LKR | Sri Lankan rupee | 2 | Resmi para |
| LRD | Liberian dollar | 2 | Resmi para |
| LSL | Lesotho loti | 2 | Resmi para |
| LYD | Libyan dinar | 3 | Resmi para |
| MAD | Moroccan dirham | 2 | Resmi para |
| MDL | Moldovan leu | 2 | Resmi para |
| MGA | Malagasy ariary | 2 | Resmi para |
| MKD | Macedonian denar | 2 | Resmi para |
| MMK | Myanmar kyat | 2 | Resmi para |
| MNT | Mongolian togrog | 2 | Resmi para |
| MOP | Macanese pataca | 2 | Resmi para |
| MRU | Mauritanian ouguiya | 2 | Resmi para |
| MUR | Mauritian rupee | 2 | Resmi para |
| MVR | Maldivian rufiyaa | 2 | Resmi para |
| MWK | Malawian kwacha | 2 | Resmi para |
| MXN | Mexican peso | 2 | Resmi para |
| MYR | Malaysian ringgit | 2 | Resmi para |
| MZN | Mozambican metical | 2 | Resmi para |
| NAD | Namibian dollar | 2 | Resmi para |
| NGN | Nigerian naira | 2 | Resmi para |
| NIO | Nicaraguan cordoba | 2 | Resmi para |
| NOK | Norwegian krone | 2 | Resmi para |
| NPR | Nepalese rupee | 2 | Resmi para |
| NZD | New Zealand dollar | 2 | Resmi para |
| OMR | Omani rial | 3 | Resmi para |
| PAB | Panamanian balboa | 2 | Resmi para |
| PEN | Peruvian sol | 2 | Resmi para |
| PGK | Papua New Guinean kina | 2 | Resmi para |
| PHP | Philippine peso | 2 | Resmi para |
| PKR | Pakistani rupee | 2 | Resmi para |
| PLN | Polish zloty | 2 | Resmi para |
| PYG | Paraguayan guarani | 2 | Resmi para |
| QAR | Qatari riyal | 2 | Resmi para |
| RON | Romanian leu | 2 | Resmi para |
| RSD | Serbian dinar | 2 | Resmi para |
| RUB | Russian ruble | 2 | Resmi para |
| RWF | Rwandan franc | 2 | Resmi para |
| SAR | Saudi riyal | 2 | Resmi para |
| SBD | Solomon Islands dollar | 2 | Resmi para |
| SCR | Seychelles rupee | 2 | Resmi para |
| SDG | Sudanese pound | 2 | Resmi para |
| SEK | Swedish krona/kronor | 2 | Resmi para |
| SGD | Singapore dollar | 2 | Resmi para |
| SHP | Saint Helena pound | 2 | Resmi para |
| SLL | Sierra Leonean leone | 2 | Resmi para |
| SOS | Somali shilling | 2 | Resmi para |
| SRD | Surinamese dollar | 2 | Resmi para |
| SSP | South Sudanese pound | 2 | Resmi para |
| STN | Sao Tome and Pricipe dobra | 2 | Resmi para |
| SVC | Salvadoran colon | 2 | Resmi para |
| SYP | Syrian pound | 2 | Resmi para |
| SZL | Swazi lilangeni | 2 | Resmi para |
| THB | Thai baht | 2 | Resmi para |
| TJS | Tajikistani somoni | 2 | Resmi para |
| TMT | Turkmenistan manat | 2 | Resmi para |
| TND | Tunisian dinar | 3 | Resmi para |
| TOP | Tongan paanga | 2 | Resmi para |
| TRY | Turkish lira | 2 | Resmi para |
| TTD | Trinidad and Tobago dollar | 2 | Resmi para |
| TWD | New Taiwan dollar | 2 | Resmi para |
| TZS | Tanzanian shilling | 2 | Resmi para |
| UAH | Ukrainian hryvnia | 2 | Resmi para |
| UGX | Ugandan shilling | 0 | Resmi para |
| USD | United States dollar | 2 | Resmi para |
| UYU | Uruguayan peso | 2 | Resmi para |
| UZS | Uzbekistan som | 2 | Resmi para |
| VES | Venezuelan bolivar soberano | 2 | Resmi para |
| VND | Vietnamese dong | 2 | Resmi para |
| VUV | Vanuatu vatu | 0 | Resmi para |
| WST | Samoan tala | 2 | Resmi para |
| XAF | CFA franc BEAC | 3 | Resmi para |
| XCD | East Caribbean dollar | 2 | Resmi para |
| XOF | CFA franc BCEAO | 2 | Resmi para |
| XPF | CFP franc (franc Pacifique) | 3 | Resmi para |
| XTS | Özellikle test amaçları için ayrılmış kodlar | 2 | Rezerve edilmiş kod |
| XXX | Hiçbir para biriminin dahil olmadığı işlemler için atanan kodlar | 2 | Rezerve edilmiş kod |
| YER | Yemeni rial | 2 | Resmi para |
| ZAR | South African rand | 2 | Resmi para |
| ZMW | Zambian kwacha | 2 | Resmi para |
| ZWL | Zimbabwean dollar | 2 | Resmi para |
