AxtonPay API

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

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

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