AxtonPay API

Document version: 0.9

Bendra informacija

API taškas

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

Content-type

API priima HTTP užklausas su 2 turinio tipais: 'application/x-www-form-urlencoded', 'application/json'.

HTTP antraštė turėtų atitikti POST turinio turinį.

Santrumpos ir apibrėžimai

  • {PID} - Sąskaitos faktūros ID, paprastai tai unikalus 8 simbolių alfanumerinis sekos kodas.
  • Shop - Jūsų svetainė, kuri priima mokėjimus per AxtonPay paslaugą

Darbo su API algoritmas

Įprasta veiksmų eiga norint gauti mokėjimą:

  • sukurti sąskaitą faktūrą ('/api/v1/private/checkout/payment/create'), API atsakymas grąžins sąskaitos faktūros URL ('invoice_url'),
  • nusiųsti pirkėjui šią sąskaitą atsiskaitymui
  • palaukite AxtonPay serverio pranešimų, kurie bus siunčiami į 'server_notification_url',
  • gavus bet kokį pranešimą iš AxtonPay, patikrinkite jo parašo galiojimą ir pageidautina išsiųskite gavimo patvirtinimą AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • jei sąskaitos faktūros būklė pasikeičia, atlikite veiksmus, atitinkančius šią būklę (pvz., prašyti pilnos informacijos apie sąskaitą faktūrą, siųsti prekes, sukurti bilietą palaikymo komandai ir pan.).

Jei kuriant sąskaitą faktūrą nustatysite tuščią arba netinkamą 'server_notification_url', paslauga negalės siųsti pranešimų apie būsenos pasikeitimus; tokiais atvejais turėtumėte patys patikrinti sąskaitą faktūrą tam tikrais intervalais ('/api/v1/private/checkout/payment/get/{PID}').

Užklausų autorizavimas

Norint autorizuoti užklausą, būtina apskaičiuoti maišos kodą (Hash) iš specialiu būdu suformuotos eilutės. Eilutė sudaroma sujungiami (sulipinami) URL parametro reikšmės (QUERY_STRING) ir POST užklausos turinys (REQUEST_BODY). Svarbu, kad visi komponentai būtų paimti būtent tokiu pavidalu, kokiu jie bus perduodami serveriui. URL parametro reikšmės (QUERY_STRING) turėtų būti paimtos iš URL kaip viena eilutė, nekeičiant parametrų tvarkos ir neišmetant jokių elementų. POST užklausos turinys (REQUEST_BODY) taip pat turėtų būti naudojamas be jokių pakeitimų, įskaitant kabučių, tarpų, skliaustų ar eilučių pertraukų neskaičiavimą.

Esant tuščiam POST užklausos kūnui ir tuštiems URL argumentams, tas komponentas tiesiog bus tuščia eilutė.

Duomenų seka pasirašymo užklausoje: QUERY_STRING pirmiausia, tada POST duomenys. Tarp jų neturėtumėte įterpti jokių sujungimo ženklų, tiesiog sujunkite dvi teksto eilutes.

Dar kartą, kiekvienas simbolis yra reikšmingas. Jūs neturėtumėte pridėti ar pašalinti net tarpo ar naujos eilutės simbolio. Tiesiog naudokite serverio gautus neapdorotus duomenis.

Iš gautos eilutės paimamas SHA-256 maišos kodas su raktu 'Secret key' ir naudojamas kaip antroji funkcijos hash_hmac() argumentas.

Būtina perduoti 'time' parametrą, kuriame yra dabartinis POSIX timestamp (Unix time).

Šis parašas galioja 24 valandas. Jei 'time' parametro reikšmė skirsis nuo dabartinio serverio laiko daugiau nei 24 valandomis (į priekį ar atgal), užklausa nepavyks net jei parašas bus apskaičiuotas be klaidų.

Jei prekybininko skydelis priėmė užklausą su tam tikru parašu, tas parašas negali būti naudojamas dar kartą, net norint siųsti užklausą su tais pačiais parametrais (tai įtraukia parametrą 'time').

Gautasis maišos kodas perduodamas HTTP antraštėje 'Sign'.

Be apskaičiuoto parašo, užklausoje taip pat turi būti 'Api-Key' antraštė, kurioje būtų panaudotas API raktas. Pavyzdys:

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

Jūs galite pasirašyti AxtonPay išsiųstą užklausą bet kuriuo galiojančiu raketu, kuris priklauso šiam atsiskaitymui. Tačiau AxtonPay visada naudoja raktą, kurį pasirinkote prekybininko skydelyje.

Parašo apskaičiavimo pavyzdys:

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

Atkreipkite dėmesį į tarpus ir eilučių lūžius kitame pavyzdyje:

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

Python pavyzdys, kaip sudaryti eilutę parašo skaičiavimui:

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

Parametrai

API priima visus parametrus tiek QUERY_STRING, tiek POST užklausos kūne.

Bule'o kintamieji

API tikisi gauti '0' arba '1' Boolean tipo kintamuosiuose, bet dėl implicitinės tipo konversijos bet koks teksto eilutės vertimas bus laikomas '1', net žodis 'false'. Todėl, norint aiškiai nustatyti 'FALSE' reikšmę Boolean tipo kintamajam, reikia perduoti jam arba reikšmę '0', arba tuščią eilutę.

Dešimtainė kablelis

Skaičiuose dešimtainėms dalims atskirti naudojamas tik dešimtainis kablelis.

Parametrų simbolių dydis

Išimtimis, visi parametrai yra jautrūs raidžių dydžiui.

Atgalinio skambučio URL

AxtonPay administravimo skydelyje, atsiskaitymo nustatymų puslapyje, galima nustatyti parduotuvės URL serverio-serverio pranešimams iš AxtonPay gauti, taip pat URL pirkėjo nukreipimui po sąskaitos apmokėjimo arba jos atšaukimo, taip pat klaidos atveju.

Šie URL gali būti pakeisti sąskaitos faktūros kūrimo užklausoje.

AxtonPay API metodai

Sąskaitos kūrimas: /api/v1/private/checkout/payment/create

Metodas /api/v1/private/checkout/payment/create inicijuoja sąskaitos faktūros kūrimą.

Jei pavyksta, metodas grąžina nuorodą ('invoice_url'), į kurią turėtumėte nukreipti klientą mokėjimui.

Savi sąskaitos parametrai:

  • time (privaloma) - POSIX timestamp (Unix time)
  • amount (privaloma) - mokėtina suma (prekės ar paslaugos kaina, kurią parduotuvė nori gauti)
  • currency (privaloma) - 3 raidžių valiutos kodas pagal ISO 4217-alpha, nepaisant didžiųjų ir mažųjų raidžių
  • pms (privaloma) - mokėjimo būdai, rodomi sąskaitos puslapyje. Jei norite leisti visus mokėjimo būdus, reikšmė yra 'all'; jei norite leisti tik kai kuriuos iš jų, išvardykite jų skaičinius identifikatorius, atskirtus kableliais.
  • pm - Pasirinkto mokėjimo metodo identifikatorius. Svarbu, kad jei perduodamas 'pm' parametras, sąskaita bus sukurta „skaidriu režimu“, t. y. pirkėjas nematys sąskaitos puslapio, o eis tiesiai į mokėjimo sistemą.
  • extra_data - asociatyvus masyvas, kuriame yra bet kokie papildomi duomenys; šie duomenys grąžinami parduotuvei visi
  • shop_user_id - vartotojo identifikatorius parduotuvėje, jis grąžinamas į parduotuvę nepakitęs
  • shop_payment_id - mokėjimo identifikatorius parduotuvėje, jis grąžinamas į parduotuvę nepakitęs
  • shop_name - parduotuvės pavadinimas (rodoma sąskaitos puslapyje)
  • shop_payment_desc - užsakymo aprašymas (rodoma sąskaitos puslapyje)
  • shop_payment_remark - jūsų pastabos apie šį mokėjimą (tai laukelis bet kokioms pastaboms apie mokėjimą, kurias AxtonPay niekur nepersiunčia; jos matomos tik mokėjimų sąraše; jos negrįžta į parduotuvę)
  • valid_time - laiko intervalas, per kurį galima sumokėti sąskaitą; sekundėmis
  • view_time - laiko intervalas, per kurį sąskaitą galima peržiūrėti per išorinę nuorodą; sekundėmis; atgalinis skaičiavimas prasideda pasibaigus 'valid_time' laikotarpiui
  • server_notification_method - mokėjimų būsenų serverio-serverio pranešimų siuntimo metodas parduotuvei; galimos reikšmės: POST, GET

Kai kurie sąskaitos nustatymai yra nustatyti atsiskaitymo nustatymų puslapyje. Tačiau užklausoje perduodamos reikšmės turės pirmenybę prieš šiuos nustatymus.

Atsiskaitymo parametrai, kuriuos galima pakeisti šiam sąskaitai:

  • customer_success_url - nuoroda, į kurią pirkėjas bus peradresuotas, jei sąskaita bus sėkmingai apmokėta (t. y. jei sąskaitos būklė yra 'paid' arba 'overpaid').
  • customer_cancel_url - nuoroda, į kurią pirkėjas bus nukreiptas, jei mokėjimas bus atšauktas
  • customer_fail_url - nuoroda, į kurią pirkėjas bus nukreiptas, jei mokėjimas baigsis klaida
  • server_notification_url - nuoroda siųsti serverio-serverio pranešimus apie mokėjimo būsenas parduotuvei

Pastaba: Kad atitiktumėte savo privatumo politiką, paprastai nėra būtina įtraukti kliento asmens duomenų į sąskaitos savybes. Pavyzdžiui, parametre "shop_user_id" geriau nurodyti abstraktų kliento ID, o ne jo el. pašto adresą ar telefono numerį. Taip pat "shop_payment_desc" lauke geriau visiškai neįtraukti kliento duomenų, nes jie jau patys žino apie save viską; vietoje to galite nurodyti kai kurią informaciją apie apmokėtą prekę ar paslaugą, arba netgi tiesiog parašyti veiklos tipą, pavyzdžiui, „Pirkimas“ arba „Balanso papildymas“.

Visi nuorodos privalomai perduodamos naudojant protokolą.

Užklausos pavyzdys:

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

Sėkmingo atsakymo pavyzdys prašant sukurti sąskaitą faktūrą:

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

Gauti sąskaitos informaciją: /api/v1/private/checkout/payment/get/{PID}

Norėdami gauti reikiamą informaciją, paskambinkite metodu /api/v1/private/checkout/payment/get/{PID}, nurodydami sąskaitos faktūros PID URL pabaigoje.

Užklausos parametrai:

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

Parašymo pavyzdžio eilutė:

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

// String for signature calculation: 
time=1766837343

Atsakymo pavyzdys:

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

Prašomos sumos ir sumokėtos sumos palyginimas

Atsakyme pateikiamos kelios skirtingos sumos (valiuta, kuria buvo išrašyta sąskaita):

  • "amount" - sąskaitoje nurodyta suma
  • "filled" - apmokėjo dalį sąskaitos
  • "total_filled" - kiek klientas sumokėjo iš viso, įskaitant komisijas.

Jei "filled = amount", tai sumokama tiek, kiek reikia.

Jei "filled > amount", tai yra permokėjimas.

Jei "filled < amount", sąskaita nebuvo sumokėta visiškai (nepakankamas apmokėjimas).

Sąskaita faktūra: pranešimo iš AxtonPay apie būsenos pasikeitimą apdorojimas

Kiekvieną kartą, kai sąskaitos statusas pasikeičia, AxtonPay siunčia pranešimą server_notification_url (naudojant server_notification_method)

Pavyzdžių duomenys:

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

Atsakydamas į šį pranešimą AxtonPay tikisi gauti HTTP code 200, kuris patvirtina jo sėkmingą gavimą. Priešingu atveju, AxtonPay bandys dar 12 kartų didėjančiais intervalais, o tada pranešimo būseną keičia į 'error' (tačiau tai neturi įtakos pačios sąskaitos būsenai).

Galimos būsenos reikšmės:

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

Sėkmingos mokėjimo būsenos yra 1 (paid) ir 5 (overpaid); gavus jas, galite pervesti apmokėtą pirkimą klientui arba papildyti balansą. Mokėjimams su 5 (overpaid) būsena, papildant balansą galite papildyti balansą tik gavę faktinę sumą, tačiau parduodant prekes/paslaugas ir esant reikšmingai permokai, patartina susisiekti su mokėtoju ir kartu nuspręsti, kaip elgtis su permoka.

Iš dalies sėkmingas statusas yra 4 (underpaid); gavus šį statusą, galima papildyti balansą faktinės gautos sumos dydžiu. Tačiau šio statuso negalima laikyti sėkmingu prekių/paslaugų pardavimui.

Visos kitos būsenos - 0 (pending), 2 (error), 3 (canceled by customer) reiškia visišką mokėjimo nebuvimą; gavus jas nereikėtų atlikti jokių veiksmų dėl balanso papildymo ar prekių/paslaugų pardavimo.

Parašo tikrinimas

Norint būti tikram, kad pranešimas siunčiamas būtent AxtonPay, būtina patikrinti gauto pranešimo parašą prieš juo pasitikint. Patikrinimas yra panašus į savo užklausų pasirašymą, tik pridedamas paskutinis žingsnis, kai turite palyginti apskaičiuotą parašą su gautu HTTP antrašte 'Sign'.

Pagrindiniai žingsniai gavus pranešimą apie pasikeitusį mokėjimo statusą yra šie:

  • paimkite visą argumentų eilutę (QUERY_STRING) iš gauto pranešimo,
  • paimkite visą POST data (REQUEST_BODY) iš gauto pranešimo,
  • apskaičiuokite parašą naudodami tuos QUERY_STRING + REQUEST_BODY ir atitinkamą 'Secret key',
  • palyginti apskaičiuotą parašą su tuo, kuris gautas HTTP antraštėje 'Sign',
  • jei parašai yra tokie patys, pranešimas tikrai atkeliavo iš AxtonPay;
  • jei parašai skiriasi, tai gali būti mokėtojo bandymas sukčiauti.

Pavyzdys eilutės parašo generavimui:

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

Patvirtinimas, kad parduotuvė apdorotų mokėjimo informaciją: /api/v1/private/checkout/payment/confirm/{PID}

Šis prašymas siunčiamas AxtonPay kaip atsakas į gautą pranešimą. Funkciškai tai yra patvirtinimas, kad parduotuvė sėkmingai gavo ir apdorojė gautą pranešimą.

Norėdami išsiųsti užklausą, kvieskite metodą /api/v1/private/checkout/payment/confirm/{PID}, nurodydami sąskaitos faktūros PID URL pabaigoje.

Užklausos parametrai:

  • time (privaloma) - POSIX timestamp (Unix time)
  • status (privalomas, sveikasis skaičius) - mokėjimo būsenos numeris, už kurį parduotuvė siunčia patvirtinimą

Jei perduota būsena atitinka šios sąskaitos faktūros dabartinę būseną sistemoje, AxtonPay atsakys su 'OK', o jei neatitinka, atsakys klaida.

Pavyzdys eilutės parašo generavimui:

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

Atsakymo pavyzdys, jei esama mokėjimo būsena yra ta pati:

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

Pavyzdys atsakymo, jei dabartinė mokėjimo būklė skiriasi nuo prašyme nurodytos:

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

Valiutų kodai

Valiutos, kurias galima naudoti sąskaitos faktūros kūrimui.

Dauguma naudojamų valiutų kodų priklauso fiat valiutoms, ir jie lygūs ISO 4217. Taip pat sąraše yra keletas kriptovaliutų.

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