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¤cy=USD' So there are HTTP query string and request body: */ $the_query_string = 'time=1735084500.3561'; $the_request_body = '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95¤cy=USD'; // • A pair of 'API key' and 'Secret key' gathered from the admin panel $the_api_key = 'key1'; $the_api_secret = 'secret1'; // • Concatenation: $string_for_sha = $the_query_string . $the_request_body; // Value: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95¤cy=USD' // • Calculating the HTTP header 'Sign' // hash method is SHA-256 $signature_sha256 = hash_hmac("sha256", $string_for_sha, $the_api_secret); // '31ca271a15e45802e07b7559a5f520656c050dda79e6fa46d52a15fc51d193cd' /* • Signed HTTP request: Method: POST URI: '/api/v1/private/checkout/payment/create?time=1735084500.3561' HTTP header 'Api-Key': 'key1' HTTP header 'Sign': '31ca271a15e45802e07b7559a5f520656c050dda79e6fa46d52a15fc51d193cd' POST body: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95¤cy=USD' */
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¤cy=RDD&test=0 // String for signature calculation: time=1737027838.1237pid=ABCD5678&status=1&shop_user_id=&shop_payment_id=&amount=25.00000000&filled=25.00000000&fee=0&total_filled=25.00000000¤cy=RDD&test=0
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 |
