AxtonPay API

Document version: 0.9

Algemene informatie

API-eindpunt

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

Content-type

API accepteert HTTP verzoeken met 2 inhoudstypen: 'application/x-www-form-urlencoded', 'application/json'.

De HTTP kop moet passen bij de inhoud van POST body.

Verkortingen en definities

  • {PID} - ID van de factuur, meestal is het de unieke 8-teken alfanumerieke reeks.
  • Shop - Uw website die betalingen accepteert via de AxtonPay-service

Algoritme voor werken met API

Gebruikelijke volgorde van handelingen om betaling te ontvangen:

  • maak een factuur ('/api/v1/private/checkout/payment/create'), de API-respons zal de factuur-URL teruggeven ('invoice_url'),
  • stuur de koper naar deze factuur om de betaling te doen,
  • wacht op AxtonPay servermeldingen, die naar 'server_notification_url' zullen komen,
  • bij ontvangst van een kennisgeving van AxtonPay, controleer de geldigheid van de handtekening en stuur bij voorkeur een ontvangstbevestiging naar AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • als de status van een factuur wordt gewijzigd, voer dan acties uit die overeenkomen met deze status (bijv. volledige informatie over de factuur opvragen, de goederen verzenden, een ticket aanmaken voor het ondersteuningsteam, enz.).

Als je een lege of ongeldige 'server_notification_url' instelt bij het aanmaken van een factuur, kan de service geen meldingen over statuswijzigingen verzenden; in dat geval moet je de factuur zelf met enige interval controleren ('/api/v1/private/checkout/payment/get/{PID}').

Autorisatie van aanvragen

Om een verzoek te autoriseren is het noodzakelijk om een hash te berekenen van een string die op een speciale manier is gevormd. De string wordt samengesteld door de URL-argumenten (QUERY_STRING) en de body van het POST-verzoek (REQUEST_BODY) aan elkaar te plakken. Het is belangrijk dat alle componenten precies in de vorm worden genomen waarin ze naar de server verzonden zullen worden. De URL-argumenten (QUERY_STRING) moeten uit de URL worden genomen als één enkele regel, zonder de volgorde van de argumenten te wijzigen en zonder elementen weg te laten. De POST-verzoekbody (REQUEST_BODY) moet ook zonder enige wijziging worden gebruikt, inclusief het niet verwijderen van aanhalingstekens, spaties, haakjes en regelafbrekingen.

In het geval van een lege POST aanvraagbody, en in het geval van lege URL-argumenten, zal die component gewoon een lege string zijn.

De volgorde van gegevens in het ondertekeningsverzoek: QUERY_STRING eerst, dan de POST gegevens. Je mag geen verbindingssymbolen tussen hen invoegen, voeg gewoon de twee tekststrings samen.

Nogmaals, elk symbool is belangrijk. Je mag geen enkele spatie of regeleinde-symbool toevoegen of verwijderen. Gebruik gewoon de ruwe gegevens die door de server zijn ontvangen.

Een SHA-256 hash met de sleutel 'Secret key' wordt genomen uit de resulterende string en gebruikt als het tweede argument van functie hash_hmac().

Het is verplicht om de 'time' parameter te doorgeven die de huidige POSIX timestamp (Unix time) bevat.

Deze handtekening is 24 uur geldig. Als de waarde van het 'time'-parameter meer dan 24 uur afwijkt van de huidige servertijd (of dit nu vooruit of achteruit is), zal het verzoek mislukken, zelfs als de handtekening zonder fouten is berekend.

Als het handelspanel een aanvraag met een bepaalde handtekening heeft geaccepteerd, kan die handtekening niet opnieuw worden gebruikt, zelfs niet om de aanvraag met dezelfde parameters te verzenden (dit omvat parameter 'time').

De resulterende hash wordt doorgegeven in de HTTP header 'Sign'.

Naast de berekende handtekening, moet het verzoek ook een 'Api-Key'-header bevatten met de gebruikte API-sleutel. Voorbeeld:

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

U kunt het verzoek dat naar de AxtonPay is verzonden ondertekenen met elke geldige sleutel die bij deze kassa hoort. De AxtonPay gebruikt echter altijd de sleutel die u in het handelaarspanel hebt geselecteerd.

Voorbeeld van handtekeningberekening:

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

Let op de witruimtes en regeleinden in een ander voorbeeld:

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

Het Python voorbeeld van het samenstellen van de string voor handtekeningberekening:

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

Parameters

De API accepteert alle parameters zowel in QUERY_STRING als in de body van het POST-verzoek.

Booleaanse variabelen

De API verwacht '0' of '1' te krijgen in Booleaanse variabelen, maar door impliciete typeconversie zal elke tekststring worden behandeld als een '1', zelfs het woord 'false'. Daarom, om expliciet een 'FALSE'-waarde voor een Booleaanse variabele in te stellen, moet je het ofwel de waarde '0' of een lege tekenreeks doorgeven.

Decimale scheidingsteken

Alleen de decimale punt wordt gebruikt als decimaalscheidingsteken in getallen.

Hoofdlettergebruik in parameters

Met enkele uitzonderingen zijn alle parameters hoofdlettergevoelig.

Terugbel-URL

In het beheerpaneel van AxtonPay, op de pagina met afrekeninstellingen, is het mogelijk om winkel-URL's in te stellen voor het ontvangen van server-naar-servermeldingen van AxtonPay, evenals URL's voor het doorsturen van de koper na betaling van de factuur of bij annulering daarvan, evenals in geval van een fout.

Deze URL's kunnen worden overschreven in het factuuraanmaakverzoek.

Methoden van AxtonPay API

Factuur aanmaken: /api/v1/private/checkout/payment/create

Methode /api/v1/private/checkout/payment/create start het aanmaken van de factuur.

Als het succesvol is, retourneert de methode een link ('invoice_url') waar u de klant naartoe moet sturen voor betaling.

Eigen factuurparameters:

  • time (vereist) - POSIX timestamp (Unix time)
  • amount (vereist) - te betalen bedrag (de prijs van het product of de dienst die de winkel wil ontvangen)
  • currency (vereist) - 3-letter valutacode volgens ISO 4217-alpha, ongevoelig voor hoofdletters
  • pms (vereist) - betalingsmethoden weergegeven op de factuurpagina. Als u alle betalingsmethoden wilt toestaan, is de waarde 'all'; als u alleen sommige daarvan wilt toestaan, noteer hun door komma's gescheiden numerieke identificaties.
  • pm - identificator van de geselecteerde betaalmethode. Het is belangrijk dat als de 'pm'-parameter wordt doorgegeven, de factuur in 'transparante modus' wordt aangemaakt, d.w.z. dat de koper de factuurpagina niet zal zien, maar direct naar het betalingssysteem gaat.
  • extra_data - een associatieve array die eventuele aanvullende gegevens bevat; deze gegevens worden in zijn geheel teruggestuurd naar de winkel
  • shop_user_id - gebruikersidentifier in de winkel, het wordt in onveranderde vorm aan de winkel teruggegeven
  • shop_payment_id - betalingsidentifier in de winkel, het wordt in onveranderde vorm naar de winkel teruggestuurd
  • shop_name - winkelnaam (weergegeven op de factuurpagina)
  • shop_payment_desc - bestelbeschrijving (weergegeven op de factuurpagina)
  • shop_payment_remark - je aantekeningen over deze betaling (dit is een veld voor eventuele aantekeningen die je over de betaling hebt, die AxtonPay nergens naartoe doorgeeft; het is alleen zichtbaar in de lijst met betalingen; het gaat niet terug naar de winkel)
  • valid_time - het tijdsinterval waarin de factuur kan worden betaald; in seconden
  • view_time - tijdinterval waarin de factuur beschikbaar is voor weergave via externe link; in seconden; aftellen begint nadat de 'valid_time'-periode eindigt
  • server_notification_method - methode voor het verzenden van server-servermeldingen over betalingsstatussen naar de winkel; geldige waarden: POST, GET

Sommige instellingen voor de factuur zijn ingesteld op de pagina met kassa-instellingen. Maar de waarden die in het verzoek worden doorgegeven, hebben voorrang boven deze instellingen.

Checkout-parameters die voor deze factuur kunnen worden overschreven:

  • customer_success_url - een link waarheen de koper wordt doorgestuurd als de factuur succesvol is betaald (d.w.z. als de factuurstatus 'paid' of 'overpaid' is).
  • customer_cancel_url - een link waarnaar de koper wordt doorgestuurd als de betaling wordt geannuleerd
  • customer_fail_url - een link waarnaar de koper wordt doorgestuurd als de betaling fout gaat
  • server_notification_url - link voor het verzenden van server-server meldingen van betalingsstatussen naar de winkel

Opmerking: Om te voldoen aan uw eigen privacybeleid is het meestal niet nodig om de persoonlijke gegevens van uw klant op te nemen in de factuureigenschappen. Bijvoorbeeld, in de "shop_user_id"-parameter is het beter om een abstract klant-ID te specificeren in plaats van hun e-mailadres of telefoonnummer. Ook in de "shop_payment_desc" is het beter om helemaal geen klantgegevens op te nemen, omdat ze al alles over zichzelf weten; in plaats daarvan kunt u wat informatie over de betaalde goederen of diensten schrijven, of zelfs alleen het type actie, bijvoorbeeld "Aankoop" of "Saldo-opwaardering".

Alle verwijzingen worden noodzakelijkerwijs met het protocol verzonden.

Voorbeeld van verzoek:

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

Voorbeeld van een succesvol antwoord bij het verzoek om het aanmaken van een factuur:

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

Factuurinformatie verkrijgen: /api/v1/private/checkout/payment/get/{PID}

Om de informatie te krijgen, moet je de methode /api/v1/private/checkout/payment/get/{PID} aanroepen door de PID van de factuur aan het einde van de URL op te geven.

Aanvraagparameters:

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

Voorbeeld van een regel voor het opstellen van een handtekening:

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

// String for signature calculation: 
time=1766837343

Voorbeeld van een antwoord:

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

Vergelijking van het aangevraagde bedrag en het betaalde bedrag

De reactie bevat verschillende bedragen (in de valuta waarin de factuur is uitgereikt):

  • "amount" - gefactureerd bedrag,
  • "filled" - gedeeltelijk betaald van de factuur,
  • "total_filled" - hoeveel de klant in totaal heeft betaald, inclusief commissies.

Als "filled = amount", dan wordt het precies zoveel betaald als nodig is.

Als "filled > amount", is er een te hoge betaling.

Als "filled < amount", is de factuur niet volledig betaald (onderbetaling).

Factuur: verwerking van melding van AxtonPay over statuswijziging

Elke keer dat de status van een factuur wordt gewijzigd, stuurt AxtonPay een melding naar server_notification_url (met behulp van de server_notification_method)

Voorbeeldgegevens:

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

Als reactie op deze melding verwacht AxtonPay HTTP code 200 te ontvangen, wat de succesvolle ontvangst bevestigt. Anders zal AxtonPay nog 12 keer proberen met oplopende tussenpozen, en daarna verandert de meldingsstatus in 'error' (maar dit beïnvloedt de status van de factuur zelf niet).

Mogelijke statuswaarden:

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

Succesvolle betalingsstatussen zijn 1 (paid) en 5 (overpaid); in het geval van hun ontvangst kunt u de betaalde aankoop aan de klant overdragen of het saldo aanvullen. Voor betalingen met status 5 (overpaid) kunt u in het geval van saldo-aanvulling het saldo aanvullen met het bedrag van de daadwerkelijk ontvangen betaling, maar in het geval van verkoop van goederen/diensten en een aanzienlijk bedrag aan overbetaling is het raadzaam contact op te nemen met de betaler en met hem te beslissen hoe met de overbetaling om te gaan.

De status gedeeltelijk succesvol is 4 (underpaid); in het geval dat deze status wordt ontvangen, is het mogelijk om het saldo op te waarderen met het bedrag van de daadwerkelijk ontvangen betaling. Deze status kan echter niet als succesvol worden beschouwd voor de verkoop van goederen/diensten.

Alle andere statussen - 0 (pending), 2 (error), 3 (canceled by customer) betekenen volledige afwezigheid van betaling; in geval van ontvangst daarvan mogen er geen handelingen worden uitgevoerd met betrekking tot het aanvullen van het saldo of de verkoop van goederen/diensten.

Handtekeningcontrole

Om er zeker van te zijn dat de melding precies door AxtonPay is verzonden, is het noodzakelijk om de handtekening van de ontvangen melding te verifiëren voordat u erop vertrouwt. De verificatie is vergelijkbaar met het ondertekenen van uw eigen verzoeken, alleen wordt de laatste stap toegevoegd, waarbij u de berekende handtekening moet vergelijken met de ontvangen HTTP-header 'Sign'.

De belangrijkste stappen na het ontvangen van een melding over de gewijzigde betalingsstatus zijn de volgende:

  • neem de hele reeks argumenten (QUERY_STRING) van de ontvangen melding,
  • neem de hele POST data (REQUEST_BODY) van de ontvangen melding,
  • bereken de handtekening met behulp van die QUERY_STRING + REQUEST_BODY en de geschikte 'Secret key',
  • vergelijk de berekende handtekening met degene die in de HTTP-header 'Sign' is ontvangen,
  • als de handtekeningen hetzelfde zijn, komt de melding echt van AxtonPay;
  • Als de handtekeningen verschillend zijn, kan het een poging zijn van de betaler om te frauderen.

Voorbeeld van een regel voor handtekeninggeneratie:

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

Bevestiging dat de winkel de betalingsinformatie heeft verwerkt: /api/v1/private/checkout/payment/confirm/{PID}

Dit verzoek wordt naar AxtonPay gestuurd als reactie op een notificatie die ervan is ontvangen. Functioneel is het een bevestiging dat de winkel de ontvangen notificatie succesvol heeft ontvangen en verwerkt.

Om een verzoek te verzenden, roep je de methode /api/v1/private/checkout/payment/confirm/{PID} aan, door de pid van de factuur aan het einde van de URL op te geven.

Aanvraagparameters:

  • time (vereist) - POSIX timestamp (Unix time)
  • status (verplicht, geheel getal) - betalingsstatusnummer waarvoor de winkel een bevestiging stuurt

Als de verzonden status overeenkomt met de huidige status van deze factuur in het systeem, zal AxtonPay reageren met 'OK' en als deze niet overeenkomt, zal het reageren met een fout.

Voorbeeld van een regel voor handtekeninggeneratie:

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

Voorbeeld van een reactie als de huidige betalingsstatus hetzelfde is:

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

Voorbeeld van een reactie als de huidige betalingsstatus verschilt van degene die in het verzoek is verzonden:

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

Valutacodes

De valuta's die gebruikt kunnen worden voor het aanmaken van een factuur.

De meeste gebruikte valutacodes behoren tot fiatvaluta's en zijn gelijk aan de ISO 4217. Ook bevat de lijst verschillende cryptocurrencies.

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