AxtonPay API

Document version: 0.9

Yleiset tiedot

API-päätepiste

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

Content-type

API hyväksyy HTTP pyynnöt kahdella sisältötyypillä: 'application/x-www-form-urlencoded', 'application/json'.

HTTP otsikon tulisi sopia POST rungon sisältöön.

Lyhenteet ja määritelmät

  • {PID} - Laskun tunnus, yleensä ainutlaatuinen 8-merkkinen kirjain-numeerinen jono.
  • Shop - Verkkosivustosi, joka hyväksyy maksuja AxtonPay-palvelun kautta

Algoritmi työn tekemiseen API:n kanssa

Tavallinen toimintajärjestys maksun vastaanottamiseksi:

  • luo lasku ('/api/v1/private/checkout/payment/create'), API-vastaus palauttaa laskun URL-osoitteen ('invoice_url'),
  • lähetä ostaja tälle laskulle maksua varten,
  • odota AxtonPay palvelinilmoituksia, jotka tulevat 'server_notification_url',
  • vastaanotettuasi minkä tahansa ilmoituksen AxtonPay, tarkista sen allekirjoituksen voimassaolo ja mieluiten lähetä kuittaus vastaanottamisesta AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • jos laskun tila muuttuu, suorita tämän tilan mukaiset toimenpiteet (esim. pyydä täydelliset tiedot laskusta, lähetä tavarat, luo tukitiimiä varten lippu jne.).

Jos asetat tyhjän tai virheellisen 'server_notification_url' luodessasi laskua, palvelu ei pysty lähettämään ilmoituksia tilamuutoksista; tällaisissa tapauksissa sinun pitäisi tarkistaa lasku itse jollain aikavälillä ('/api/v1/private/checkout/payment/get/{PID}').

Pyyntöjen valtuutus

Vastauksen valtuuttamiseksi on tarpeen laskea hash-arvo merkkijonosta, joka muodostetaan erityisellä tavalla. Merkkijono koostuu URL-argumenttien (QUERY_STRING) ja POST pyynnön rungon (REQUEST_BODY) yhdistämisestä (liittämisestä). On tärkeää, että kaikki komponentit otetaan täsmälleen siinä muodossa, jossa ne lähetetään palvelimelle. URL-argumentit (QUERY_STRING) tulisi ottaa URL-osoitteesta yhtenä rivinä, muuttamatta argumenttien järjestystä eikä jättämättä mitään elementtejä pois. POST pyynnön runkoa (REQUEST_BODY) tulee myös käyttää ilman muutoksia, mukaan lukien lainausmerkkien, välilyöntien, sulkeiden ja rivinvaihtojen poistamatta jättäminen.

Tyhjän POST-pyyntökehon ja tyhjien URL-argumenttien tapauksessa kyseinen komponentti on yksinkertaisesti tyhjä merkkijono.

Tietojen järjestys allekirjoituspyynnössä: QUERY_STRING ensin, sitten POST tiedot. Et saa lisätä niiden väliin mitään yhdistäviä merkkejä, vaan yhdistä vain kaksi tekstijonoa.

Vielä kerran, jokainen symboli on merkityksellinen. Sinun ei pitäisi lisätä tai poistaa edes välilyöntiä tai rivinvaihtosymbolia. Käytä vain palvelimelta saatuja raakadataa.

SHA-256 hash avainella 'Secret key' otetaan tuloksena olevasta merkkijonosta ja sitä käytetään funktion hash_hmac() toisena argumenttina.

On pakollista lähettää 'time'-parametri, joka sisältää nykyisen POSIX timestamp (Unix time).

Tämä allekirjoitus on voimassa 24 tuntia. Jos 'time'-parametrin arvo poikkeaa nykyisestä palvelimen ajasta yli 24 tuntia (etukäteen tai taaksepäin), pyyntö epäonnistuu, vaikka allekirjoitus olisi laskettu ilman virheitä.

Jos kauppiaspaneeli on hyväksynyt pyynnön jonkin allekirjoituksen kanssa, kyseistä allekirjoitusta ei voida käyttää uudelleen, edes lähettämään pyyntöä samoilla parametreilla (tämä sisältää parametrin 'time').

Tuloksena oleva tiiviste lähetetään HTTP-otsikossa 'Sign'.

Laskelman allekirjoituksen lisäksi pyynnön on myös sisältävä 'Api-Key'-otsake, joka sisältää käytetyn API-avaimen. Esimerkki:

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

Voit allekirjoittaa AxtonPay:lle lähetetyn pyynnön millä tahansa pätevällä avaimella, joka kuuluu tähän maksuprosessiin. Kuitenkin AxtonPay käyttää aina avainta, jonka olet valinnut kauppiaspaneelissa.

Esimerkki allekirjoituksen laskemisesta:

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

Kiinnitä huomiota välilyönteihin ja rivinvaihtoihin toisessa esimerkissä:

/* 
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 esimerkki merkkijonon koostamisesta allekirjoituksen laskemista varten:

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

Parametrit

API hyväksyy kaikki parametrit sekä QUERY_STRING että POST pyynnön rungossa.

Boolean-muuttujat

API odottaa saavansa '0' tai '1' Boolen muuttujissa, mutta implisiittisen tyyppimuunnoksen vuoksi mikä tahansa tekstimerkkijono käsitellään '1'-arvona, jopa sana 'false'. Näin ollen, asettaaksesi Boolen muuttujalle eksplisiittisesti 'FALSE'-arvon, sinun täytyy välittää siihen joko arvo '0' tai tyhjä merkkijono.

Desimaalierotin

Vain desimaalipistettä käytetään desimaalierottimena luvuissa.

Merkkien kirjainkoko parametreissa

Muutamia poikkeuksia lukuun ottamatta kaikki parametrit ovat kirjainkoon mukaisia.

Takaisinkutsun URL

AxtonPay hallintapaneelissa, kassasivun asetuksissa on mahdollista asettaa kaupan URL-osoitteet vastaanottamaan palvelin-palvelin-ilmoituksia AxtonPay:lta, sekä URL-osoitteet ostajan uudelleenohjausta varten laskun maksamisen, sen peruuttamisen tai virheen sattuessa.

Näitä URL-osoitteita voidaan ohittaa laskun luomispyynnössä.

API:n menetelmät

Laskun luominen: /api/v1/private/checkout/payment/create

Metodi /api/v1/private/checkout/payment/create aloittaa laskun luomisen.

Jos onnistuu, menetelmä palauttaa linkin ('invoice_url'), johon sinun tulisi ohjata asiakas maksua varten.

Omat laskun parametrit:

  • time (vaaditaan) - POSIX timestamp (Unix time)
  • amount (vaaditaan) - maksettava määrä (tuotteen tai palvelun hinta, jonka kauppa haluaa saada)
  • currency (vaaditaan) - 3-kirjaiminen valuuttakoodi ISO 4217-alpha mukaan, kirjainkoolla ei merkitystä
  • pms (vaaditaan) - Laskusivulla näytettävät maksutavat. Jos haluat sallia kaikki maksutavat, arvo on 'all'; jos haluat sallia vain joitakin niistä, luettele niiden pilkuin erotetut numeeriset tunnisteet.
  • pm - valitun maksutavan tunniste. On tärkeää, että jos 'pm'-parametri lähetetään, lasku luodaan 'läpinäkyvässä tilassa', eli ostaja ei näe laskusivua, vaan siirtyy suoraan maksujärjestelmään.
  • extra_data - assosiatiivinen taulukko, joka sisältää kaiken ylimääräisen datan; tämä data palautetaan kauppaan kokonaisuudessaan
  • shop_user_id - käyttäjätunniste myymälässä, se palautetaan myymälään muuttumattomassa muodossa
  • shop_payment_id - maksun tunniste kaupassa, se palautetaan kauppaan muuttumattomassa muodossa
  • shop_name - kaupan nimi (näytetään laskusivulla)
  • shop_payment_desc - tilauksen kuvaus (näytetään laskusivulla)
  • shop_payment_remark - muistiinpanosi tästä maksusta (tämä kenttä on tarkoitettu kaikille muistiinpanoillesi maksusta, joita AxtonPay ei lähetä minnekään; ne ovat näkyvissä vain maksujen luettelossa; ne eivät mene takaisin kauppaan)
  • valid_time - aikaväli, jonka kuluessa lasku voidaan maksaa; sekunneissa
  • view_time - aikaväli, jonka aikana lasku on katsottavissa ulkoisen linkin kautta; sekunteina; ajastin alkaa laskemaan 'valid_time' jakson päätyttyä
  • server_notification_method - menetelmä lähettää palvelin-palvelin-ilmoituksia maksutilanteista kauppaan; voimassa olevat arvot: POST, GET

Joitakin laskun asetuksia määritetään kassasivun asetuksissa. Mutta pyynnössä välitetyt arvot ovat etusijalla näihin asetuksiin nähden.

Kassaprosessin parametrit, joita voidaan ohittaa tälle laskulle:

  • customer_success_url - linkki, johon ostaja ohjataan, jos lasku maksetaan onnistuneesti (eli jos laskun tila on 'paid' tai 'overpaid').
  • customer_cancel_url - linkki, johon ostaja ohjataan, jos maksu peruutetaan
  • customer_fail_url - linkki, johon ostaja ohjataan, jos maksu päättyy virheeseen
  • server_notification_url - linkki maksutilan palvelin-palvelin-ilmoitusten lähettämiseen kauppaan

Huomautus: Noudattaaksesi omaa tietosuojakäytäntöäsi, ei yleensä ole tarpeen sisällyttää asiakkaasi henkilötietoja laskun ominaisuuksiin. Esimerkiksi "shop_user_id"-parametrissa on parempi ilmoittaa abstrakti asiakas-ID kuin heidän sähköpostiosoitteensa tai puhelinnumeronsa. Myös "shop_payment_desc"-kentässä on parempi olla sisällyttämättä asiakastietoja lainkaan, koska he jo tietävät kaiken itsestään; sen sijaan voit kirjoittaa tietoa maksetuista tavaroista tai palveluista, tai jopa vain kirjoittaa toiminnon tyypin, esimerkiksi "Osto" tai "Saldojen lisäys".

Kaikki viittaukset välitetään välttämättä protokollan mukana.

Esimerkki pyynnöstä:

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

Esimerkki onnistuneesta vastauksesta pyydettäessä laskun laatimista:

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

Laskutietojen hankkiminen: /api/v1/private/checkout/payment/get/{PID}

Saadaksesi tarvitsemasi tiedot, kutsu menetelmää /api/v1/private/checkout/payment/get/{PID}, määrittämällä laskun PID URL-osoitteen lopussa.

Pyyntöparametrit:

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

Esimerkki lauseesta allekirjoituksen laatimiseen:

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

// String for signature calculation: 
time=1766837343

Esimerkki vastauksesta:

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

Pyydetyn ja maksetun määrän vertailu

Vastaus sisältää useita eri määriä (valuutassa, jossa lasku on annettu):

  • "amount" - laskutettu määrä,
  • "filled" - maksoi osan laskusta,
  • "total_filled" - paljonko asiakas maksoi yhteensä, mukaan lukien palkkiot.

Jos "filled = amount", niin sitä maksetaan täsmälleen niin paljon kuin tarvitsee.

Jos "filled > amount", on liikaa maksettu.

Jos "filled < amount", laskua ei ole maksettu kokonaan (ali maksu).

Lasku: ilmoituksen käsittely AxtonPay:ltä tilan muutoksesta

Joka kerta, kun laskun tila muuttuu, AxtonPay lähettää ilmoituksen server_notification_url:lle (käyttäen server_notification_method).

Esimerkkitiedot:

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

Vastauksena tähän ilmoitukseen AxtonPay odottaa vastaanottavansa HTTP code 200, joka vahvistaa sen onnistuneen vastaanoton. Muuten AxtonPay yrittää uudelleen 12 kertaa kasvavilla väleillä, ja sitten ilmoituksen tila muuttuu 'error' (mutta tämä ei vaikuta itse laskun tilaan).

Mahdolliset tilat:

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

Onnistuneet maksutilat ovat 1 (paid) ja 5 (overpaid); niiden vastaanoton yhteydessä voit siirtää maksetun ostoksen asiakkaalle tai täydentää saldoa. Maksujen osalta, joiden tila on 5 (overpaid), saldon täydennyksen yhteydessä voit täydentää saldon todellisen vastaanotetun maksun määrällä, mutta tavaroiden/palveluiden myynnin ja merkittävän ylisuorituksen tapauksessa on suositeltavaa ottaa yhteyttä maksajaan ja päättää hänen kanssaan, miten ylisuorituksen kanssa toimitaan.

Osittain onnistunut tila on 4 (underpaid); tämän tilan saapuessa on mahdollista ladata saldo uudelleen todellisen vastaanotetun maksun määrällä. Tämä tila ei kuitenkaan voi olla onnistunut tavaroiden/palveluiden myynnin osalta.

Kaikki muut statukset - 0 (pending), 2 (error), 3 (canceled by customer) tarkoittavat maksun täydellistä puuttumista; niiden vastaanottamisen yhteydessä ei tule suorittaa toimenpiteitä saldon täydennykseen tai tavaroiden/palveluiden myyntiin.

Allekirjoituksen tarkistus

Varmistaaksesi, että ilmoitus on lähetetty tarkalleen AxtonPaylta, on tarpeen tarkistaa vastaanotetun ilmoituksen allekirjoitus ennen kuin luotat siihen. Tarkistus on samanlainen kuin omien pyyntöjesi allekirjoittaminen, vain viimeinen vaihe lisätään, jolloin sinun tulisi verrata laskettua allekirjoitusta vastaanotettuun HTTP-otsikkoon 'Sign'.

Pääasialliset vaiheet sen jälkeen, kun ilmoitus maksuosan tilan muutoksesta on vastaanotettu, ovat seuraavat:

  • ota koko argumenttijono (QUERY_STRING) vastaanotetusta ilmoituksesta,
  • ota koko POST data (REQUEST_BODY) vastaanotetusta ilmoituksesta,
  • laske allekirjoitus käyttäen näitä QUERY_STRING + REQUEST_BODY ja sopivaa 'Secret key',
  • vertaa laskettu allekirjoitus siihen, joka vastaanotetaan HTTP-otsikossa 'Sign',
  • jos allekirjoitukset ovat samat, ilmoitus todella tuli AxtonPay;
  • Jos allekirjoitukset ovat erilaisia, se saattaa olla yritys huijata maksajaa.

Esimerkki rivistä allekirjoituksen luomista varten:

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

Vahvistus siitä, että kauppa on käsitellyt maksutiedot: /api/v1/private/checkout/payment/confirm/{PID}

Tämä pyyntö lähetetään AxtonPay:lle vastauksena siitä vastaanotettuun ilmoitukseen. Toiminnallisesti se on vahvistus siitä, että kauppa on onnistuneesti vastaanottanut ja käsitellyt vastaanotetun ilmoituksen.

Lähettääksesi pyynnön, kutsu /api/v1/private/checkout/payment/confirm/{PID}-metodia määrittämällä laskun pid URL-osoitteen loppuun.

Pyynnön parametrit:

  • time (vaaditaan) - POSIX timestamp (Unix time)
  • status (pakollinen, kokonaisluku) - maksun tilanumero, jonka perusteella kauppa lähettää vahvistuksen

Jos lähetetty tila vastaa tämän laskun nykyistä tilaa järjestelmässä, AxtonPay vastaa 'OK':llä ja jos se ei vastaa, se vastaa virheellä.

Esimerkki rivistä allekirjoituksen luomista varten:

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

Esimerkki vastauksesta, jos nykyinen maksutilanne on sama:

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

Esimerkki vastauksesta, jos nykyinen maksutilanne poikkeaa pyynnössä lähetetystä:

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

Valuuttakoodit

Valuutat, joita voidaan käyttää laskun tekemiseen.

Suurin osa käytetyistä valuuttakoodeista kuuluu fiat-valuuttoihin, ja ne ovat yhtä arvokkaita kuin ISO 4217. Luettelo sisältää myös useita kryptovaluuttoja.

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