AxtonPay API

Document version: 0.9

Bieža informācija

API galapunkts

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

Content-type

API pieņem HTTP pieprasījumus ar 2 satura tipiem: 'application/x-www-form-urlencoded', 'application/json'.

HTTP galvene jāatbilst POST satura ķermenim.

Saīsinājumi un definīcijas

  • {PID} - Rēķina ID, parasti tas ir unikāls 8 rakstzīmju alfanumerisks secība.
  • Shop - Jūsu tīmekļa vietne, kas pieņem maksājumus caur AxtonPay pakalpojumu

Darba algoritms ar API

Parastā darbību secība, lai saņemtu maksājumu:

  • izveidot rēķinu ('/api/v1/private/checkout/payment/create'), API atbilde atgriezīs rēķina URL ('invoice_url'),
  • nosūtiet pircēju uz šo rēķinu, lai veiktu maksājumu,
  • gaidiet AxtonPay servera paziņojumus, kas tiks nosūtīti uz 'server_notification_url',
  • saņemot jebkādu paziņojumu no AxtonPay, pārbaudiet tā paraksta derīgumu un, vēlams, nosūtiet saņemšanas apstiprinājumu AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • ja rēķina statuss tiek mainīts, veiciet darbības, kas atbilst šim statusam (piemēram, pieprasiet visu informāciju par rēķinu, piegādājiet preces, izveidojiet pieprasījumu atbalsta komandai utt.).

Ja veidojot rēķinu, iestatāt tukšu vai nederīgu 'server_notification_url', pakalpojums nevar nosūtīt paziņojumus par statusa izmaiņām; šādos gadījumos jums pašam jānosaka rēķina statuss noteiktā intervālā ('/api/v1/private/checkout/payment/get/{PID}').

Pieprasījumu autorizēšana

Lai autorizētu pieprasījumu, ir nepieciešams aprēķināt hashu no virknes, kas veidota īpašā veidā. Virkne tiek sastādīta, apvienojot (salīmējot kopā) URL argumentus (QUERY_STRING) un POST pieprasījuma ķermeni (REQUEST_BODY). Ir svarīgi, lai visi komponenti tiktu ņemti tieši tādā formā, kādā tie tiks nosūtīti serverim. URL argumentus (QUERY_STRING) jāņem no URL kā vienu rindu, nemainot argumentu secību un neatmetot nevienu elementu. POST pieprasījuma ķermenis (REQUEST_BODY) arī jāizmanto bez jebkādām izmaiņām, tostarp neizņemot no tā pēdiņas, atstarpes, iekavas, rindu pārtraukumus.

Tukša POST pieprasījuma ķermeņa gadījumā un tukšu URL argumentu gadījumā šī komponente vienkārši būs tukšs virkne.

Datu secība parakstīšanas pieprasījumā: QUERY_STRING vispirms, tad POST dati. Starp tiem nevajadzētu ievietot nekādas savienojošas zīmes, tikai vienkārši savienojiet divus teksta virknējums.

Vēlreiz, katrs simbols ir nozīmīgs. Jums nevajadzētu pievienot vai noņemt pat tukšo vietu vai jaunas rindas simbolu. Vienkārši izmantojiet servera saņemtos neapstrādātos datus.

No iegūtā virknē tiek ņemts hašs ar atslēgu 'Secret key' un izmantots kā funkcijas hash_hmac() otrais arguments.

Ir obligāti jāpārsūta 'time' parametrs, kas satur pašreizējo POSIX timestamp (Unix time).

Šī paraksta derīguma termiņš ir 24 stundas. Ja 'time' parametra vērtība atšķiras no pašreizējā servera laika vairāk nekā par 24 stundām (vai nu uz priekšu, vai atpakaļ), pieprasījums neizdosies pat tad, ja paraksts ir aprēķināts bez kļūdām.

Ja tirgotāja panelis ir pieņēmis pieprasījumu ar kādu parakstu, šo parakstu vairs nevar izmantot atkārtoti, pat lai nosūtītu pieprasījumu ar tām pašām parametriem (tas ietver parametru 'time').

Rezultātā iegūtais hešs tiek nodots HTTP galvenē 'Sign'.

Papildus aprēķinātajai parakstam, pieprasījumam arī jāietver 'Api-Key' galvene, kas satur izmantoto API atslēgu. Piemērs:

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

Jūs varat parakstīt pieprasījumu, kas nosūtīts uz AxtonPay, ar jebkuru derīgu atslēgu, kas pieder šai norēķinu sistēmai. Tomēr AxtonPay vienmēr izmanto atslēgu, kuru esat izvēlējies tirgotāja panelī.

Paraksta aprēķina piemērs:

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

Pievērsiet uzmanību atstarpēm un rindkopu pārtraukumiem citā piemērā:

/* 
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 piemērs virknes sastādīšanai paraksta aprēķināšanai:

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

Parametri

API pieņem visus parametrus gan QUERY_STRING, gan POST pieprasījuma ķermenī.

Bulea mainīgie

API sagaida, ka Boole tipa mainīgajos tiks saņemts '0' vai '1', bet, pateicoties netiešajai tipu konvertācijai, jebkurš teksta virkne tiks uzskatīta par '1', pat vārds 'false'. Tāpēc, lai skaidri uzstādītu Boole tipa mainīgajam vērtību 'FALSE', jums jānodod tam vai nu vērtība '0', vai tukša virkne.

Decimālzīme

Skaitļos kā decimālšķirtājs tiek izmantota tikai decimālzīme.

Parametru lielie un mazie burti

Ar dažiem izņēmumiem, visi parametri ir reģistrjutīgi.

Atzvanīšanas URL

AxtonPay administratora panelī, norēķinu iestatījumu lapā, ir iespējams iestatīt veikala URL saņemšanai servera-servera paziņojumam no AxtonPay, kā arī URL pircēja novirzīšanai pēc rēķina apmaksas vai tā atcelšanas, kā arī kļūmes gadījumā.

Šos URL var pārrakstīt rēķina izveides pieprasījumā.

AxtonPay API metodes

Rēķina izveide: /api/v1/private/checkout/payment/create

Metode /api/v1/private/checkout/payment/create uzsāk rēķina izveidi.

Ja metode izdodas, tā atgriež saiti ('invoice_url'), uz kuru jums jānosūta klients maksājuma veikšanai.

Pašas rēķina parametri:

  • time (obligāti) - POSIX timestamp (Unix time)
  • amount (obligāti) - jāmaksā summa (produkta vai pakalpojuma cena, ko veikals vēlas saņemt)
  • currency (obligāti) - 3 burtu valūtas kods saskaņā ar ISO 4217-alpha, neievērojot lielos un mazos burtus
  • pms (obligāti) - maksājumu metodes, kas parādītas rēķina lapā. Ja vēlaties atļaut visas maksājumu metodes, vērtība ir 'all'; ja vēlaties atļaut tikai dažas no tām, uzskaitiet to ar komatu atdalītos skaitliskos identifikatorus.
  • pm - izvēlētās maksājuma metodes identifikators. Ir svarīgi, ka, ja tiek nodots 'pm' parametrs, rēķins tiks izveidots 'caurspīdīgajā režīmā', tas ir, pircējs neredzēs rēķina lapu, bet dosies tieši uz maksājumu sistēmu.
  • extra_data - asociatīvs masīvs, kas satur jebkādus papildu datus; šie dati tiek pilnībā atgriezti veikalā
  • shop_user_id - lietotāja identifikators veikalā, tas tiek atgriezts veikalā nemainītā formā
  • shop_payment_id - maksājuma identifikators veikalā, tas tiek atgriezts veikalā nemainītā formā
  • shop_name - veikala nosaukums (attēlots rēķina lapā)
  • shop_payment_desc - pasūtījuma apraksts (attēlots rēķina lapā)
  • shop_payment_remark - jūsu piezīmes par šo maksājumu (šis ir lauks jebkurām piezīmēm par maksājumu, kuras AxtonPay neizplata nevienam; tas ir redzams tikai maksājumu sarakstā; tas neiet atpakaļ uz veikalu)
  • valid_time - laika intervāls, kurā rēķinu var samaksāt; sekundēs
  • view_time - laika periods, kurā rēķins ir pieejams apskatei caur ārējo saiti; sekundēs; atpakaļskaitīšana sākas pēc 'valid_time' perioda beigām
  • server_notification_method - servera-servera paziņojumu par maksājumu statusiem nosūtīšanas metode uz veikalu; derīgās vērtības: POST, GET

Dažas rēķina iestatījumu opcijas ir iestatītas norēķinu iestatījumu lapā. Taču pieprasījumā nodotās vērtības būs prioritāras pār šiem iestatījumiem.

Atskaites parametri, kurus var pārrakstīt šai rēķinam:

  • customer_success_url - saite, uz kuru pircējs tiks pāradresēts, ja rēķins tiks veiksmīgi apmaksāts (t.i., ja rēķina statuss ir 'paid' vai 'overpaid').
  • customer_cancel_url - saite, uz kuru pircējs tiks pāradresēts, ja maksājums tiks atcelts
  • customer_fail_url - saite, uz kuru pircējs tiks novirzīts, ja maksājums beigsies ar kļūdu
  • server_notification_url - saite servera-servera paziņojumu nosūtīšanai par maksājumu statusiem uz veikalu

Piezīme: Lai ievērotu savu privātuma politiku, parasti nav nepieciešams iekļaut jūsu klienta personīgos datus rēķina īpašībās. Piemēram, "shop_user_id" parametrā labāk norādīt abstraktu klienta ID, nevis viņa e-pastu vai tālruņa numuru. Arī "shop_payment_desc" labāk vispār neiekļaut klienta datus, jo viņi jau paši zina visu par sevi; tā vietā variet ierakstīt kādu informāciju par apmaksāto preci vai pakalpojumu, vai pat vienkārši ierakstīt darbības veidu, piemēram, "Pirkums" vai "Bilances papildināšana".

Visi atsauces obligāti tiek pārsūtītas ar protokolu.

Pieprasījuma piemērs:

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

Veiksmīgas atbildes piemērs, pieprasot rēķina izveidi:

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

Rēķina informācijas iegūšana: /api/v1/private/checkout/payment/get/{PID}

Lai iegūtu nepieciešamo informāciju, izsauciet metodi /api/v1/private/checkout/payment/get/{PID}, norādot rēķina PID URL beigās.

Pieprasījuma parametri:

  • time (obligāti) - POSIX timestamp (Unix time)

Parauga rinda paraksta sastādīšanai:

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

// String for signature calculation: 
time=1766837343

Atbildes piemērs:

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

Pieprasītās summas un samaksātās summas salīdzinājums

Atbilde satur vairākas dažādas summas (valūtā, kurā tika izrakstīta rēķins):

  • "amount" - rēķinātā summa
  • "filled" - apmaksātā daļa no rēķina,
  • "total_filled" - cik daudz klients samaksāja kopumā, ieskaitot komisijas.

Ja "filled = amount", tad tas tiek apmaksāts tieši tik, cik tas nepieciešams.

Ja "filled > amount", ir pārmaksājums.

Ja "filled < amount", rēķins nav pilnībā samaksāts (nepilna samaksa).

Rēķins: paziņojuma no AxtonPay apstrāde par statusa maiņu

Katru reizi, kad tiek mainīts rēķina statuss, AxtonPay nosūta paziņojumu server_notification_url (izmantojot server_notification_method)

Piemēra dati:

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

Atbildot uz šo paziņojumu, AxtonPay sagaida saņemt HTTP code 200, kas apliecina tā veiksmīgu saņemšanu. Pretējā gadījumā AxtonPay mēģinās vēl 12 reizes ar pakāpeniski palielinātu intervālu, un pēc tam paziņojuma statuss mainās uz 'error' (bet tas neietekmē pašas rēķina statusu).

Iespējamās statusa vērtības:

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

Veiksmīgas maksājumu statusi ir 1 (paid) un 5 (overpaid); saņemot tos, jūs varat pārskaitīt samaksāto pirkumu klientam vai papildināt bilanci. Maksājumiem ar statusu 5 (overpaid), veicot bilances papildināšanu, jūs varat papildināt bilanci par faktiski saņemtās maksājuma summas apmēru, bet preču/pakalpojumu pārdošanas gadījumā un ievērojamas pārmaksa gadījumā ieteicams sazināties ar maksātāju un vienoties ar viņu, kā rīkoties ar pārmaksa.

Daļēji veiksmīgs statuss ir 4 (underpaid); saņemot šo statusu, ir iespējams uzlādēt atlikumu par faktiski saņemtās maksājuma summas apmēru. Tomēr šo statusu nevar uzskatīt par veiksmīgu preču/pakalpojumu pārdošanai.

Visi citi statusi - 0 (pending), 2 (error), 3 (canceled by customer) nozīmē pilnīgu maksājuma neesamību; to saņemšanas gadījumā nevajadzētu veikt nekādas darbības saistībā ar bilances papildināšanu vai preču/pakalpojumu pārdošanu.

Paraksta pārbaude

Lai pārliecinātos, ka paziņojumu ir nosūtījis tieši AxtonPay, ir nepieciešams pārbaudīt saņemtā paziņojuma parakstu pirms tam uzticoties. Pārbaude ir līdzīga jūsu pašu pieprasījumu parakstīšanai, tikai tiek pievienota pēdējā darbība, kad jums jāsalīdzina aprēķinātais paraksts ar saņemto HTTP galveni 'Sign'.

Galvenie soļi pēc paziņojuma saņemšanas par mainīto maksājuma statusu ir šādi:

  • ņem visu argumentu virkni (QUERY_STRING) no saņemtās paziņojuma,
  • ņem visu POST data (REQUEST_BODY) no saņemtā paziņojuma,
  • aprēķiniet parakstu, izmantojot tos QUERY_STRING + REQUEST_BODY un atbilstošo 'Secret key',
  • salīdziniet aprēķināto parakstu ar to, kas saņemts HTTP galvenes laukā 'Sign',
  • ja paraksti ir vienādi, paziņojums patiešām nāca no AxtonPay;
  • ja paraksti atšķiras, tas var būt mēģinājums krāpt maksātājs.

Piemērs rindai paraksta ģenerēšanai:

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

Apstiprinājums, ka veikals ir apstrādājis maksājuma informāciju: /api/v1/private/checkout/payment/confirm/{PID}

Šis pieprasījums tiek nosūtīts AxtonPay kā atbilde uz no tā saņemto paziņojumu. Funkcionāli tas ir apstiprinājums, ka veikals ir veiksmīgi saņēmis un apstrādājis saņemto paziņojumu.

Lai nosūtītu pieprasījumu, izsauciet metodi /api/v1/private/checkout/payment/confirm/{PID}, norādot rēķina pid URL beigās.

Pieprasījuma parametri:

  • time (obligāti) - POSIX timestamp (Unix time)
  • status (obligāts, vesels skaitlis) - maksājuma statusa numurs, par kuru veikals sūta apstiprinājumu

Ja pārraidītais statuss atbilst šī rēķina pašreizējam statusam sistēmā, AxtonPay atbildēs ar 'OK', un, ja tas neatbilst, tiks atbildēts ar kļūdu.

Piemērs rindai paraksta ģenerēšanai:

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

Atbilde piemēra gadījumā, ja pašreizējais maksājuma statuss ir tas pats:

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

Piemērs atbildes gadījumam, ja pašreizējais maksājuma statuss atšķiras no tā, kas tika nosūtīts pieprasījumā:

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

Valūtu kodi

Valūtas, kuras var izmantot rēķina izveidošanai.

Lielākā daļa izmantoto valūtas kodu pieder pie fiat valūtām, un tie ir vienādi ar ISO 4217. Sarakstā arī ir dažas kriptovalūtas.

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