AxtonPay API

Document version: 0.9

מידע נפוץ

נקודת קצה של API

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

Content-type

API מקבלת בקשות HTTP עם 2 סוגי תוכן: 'application/x-www-form-urlencoded', 'application/json'.

הכותרת HTTP צריכה להתאים לתוכן של הגוף POST.

ראשי תיבות והגדרות

  • {PID} - זיהוי של החשבונית, בדרך כלל זהו רצף אלפאנומרי ייחודי בן 8 תווים.
  • Shop - האתר שלך שמקבל תשלומים דרך שירות AxtonPay

אלגוריתם לעבודה עם API

רצף הפעולות הרגיל כדי לקבל תשלום:

  • ליצור חשבונית ('/api/v1/private/checkout/payment/create'), תגובת ה-API תחזיר את כתובת ה-URL של החשבונית ('invoice_url'),
  • שלח את הקונה לחשבונית זו על מנת לבצע תשלום,
  • חכה להודעות מהשרת AxtonPay, שהן יגיעו ל-'server_notification_url',
  • בתוך קבלת כל הודעה מ-AxtonPay, לבדוק את תקפות החתימה שלה ועדיף לשלוח אישור קבלה ל-AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • אם מצב של חשבונית משתנה, בצע פעולות המתאימות למצב זה (למשל, בקש מידע מלא על החשבונית, שלח את המוצרים, צור פנייה לצוות התמיכה וכו').

אם תגדיר 'server_notification_url' ריק או לא תקין בעת יצירת חשבונית, השירות אינו יכול לשלוח הודעות על שינויים במצב; במקרים כאלה, עליך לבדוק את החשבונית בעצמך מדי פעם ('/api/v1/private/checkout/payment/get/{PID}').

אישור בקשות

כדי לאשר בקשה יש לחשב Hash ממחרוזת שנוצרה בצורה מיוחדת. המחרוזת מורכבת מהדבקה (חיבור) של פרמטרי ה-URL (QUERY_STRING) ושל גוף הבקשה POST (REQUEST_BODY). חשוב שכל הרכיבים יילקחו בדיוק בצורתם כפי שיועברו לשרת. פרמטרי ה-URL (QUERY_STRING) יש לקחת מה-URL בשורה אחת, מבלי לשנות את סדר הפרמטרים ומבלי להשמיט אף אלמנט. גוף הבקשה POST (REQUEST_BODY) יש להשתמש בו גם כן ללא כל שינוי, כולל לא להסיר ממנו גרשיים, רווחים, סוגריים ושברים של שורות.

במקרים של גוף בקשה POST ריק, ובמקרה של פרמטרי URL ריקים, אותו רכיב יהיה פשוט מחרוזת ריקה.

רצף הנתונים בבקשת החתימה: QUERY_STRING קודם, ואז הנתונים של POST. לא צריך להכניס שום סימני חיבור ביניהם, פשוט לצרף שני מחרוזות טקסט.

שוב, כל סימן הוא משמעותי. אין להוסיף או להסיר אפילו רווח או סימן של שורה חדשה. יש להשתמש רק בנתונים הגולמיים שהתקבלו מהשרת.

גִּלּוּי SHA-256 עם המפתח 'Secret key' נלקח מהמחרוזת שנוצרה ונעשה בו שימוש כארגומנט השני של הפונקציה hash_hmac().

חובה להעביר את הפרמטר 'time' שמכיל את POSIX timestamp (Unix time) הנוכחי.

חתימה זו תקפה למשך 24 שעות. אם ערכו של הפרמטר 'time' שונה מזמן השרת הנוכחי ביותר מ-24 שעות (לא משנה קדימה או אחורה), הבקשה תיכשל גם אם החתימה מחושבת ללא שגיאות.

אם לוח המסחר קיבל בקשה עם חתימה מסוימת, אותה חתימה לא יכולה לשמש שוב, אפילו לשליחת הבקשה עם אותם הפרמטרים (זה כולל את הפרמטר 'time').

הקוד הגרעיני שנוצר נשלח בכותרת HTTP 'Sign'.

בנוסף לחתימה המחושבת, הבקשה חייבת להכיל גם כותרת 'Api-Key' המכילה את מפתח ה-API בו נעשה שימוש. לדוגמה:

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

אתה יכול לחתום על הבקשה שנשלחה ל-AxtonPay עם כל מפתח חוקי השייך לצ'קאאוט הזה. עם זאת, ה-AxtonPay תמיד ישתמש במפתח שבחרת בלוח המסחר.

דוגמה לחישוב חתימה:

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

שְׁים לֵב לְרִיוּשִׁים וּלְהַפְסְקֵי שׁוּרוֹת בְּדֻגְמָה אֲחֵרֶת:

/* 
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 להרכבת המחרוזת לצורך חישוב החתימה:

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

פרמטרים

ממשק ה-API מקבל את כל הפרמטרים גם ב-QUERY_STRING וגם בגוף של בקשת ה-POST.

משתני בוליאן

הממשק הצפוי לקבל '0' או '1' במשתני Boolean, אך בגלל המרת סוגים משתמעת, כל מחרוזת טקסט תטופל כ-'1', אפילו המילה 'false'. לכן, כדי לקבוע במפורש ערך 'FALSE' למשתנה Boolean, יש להעביר לו את הערך '0' או מחרוזת ריקה.

מפריד עשרוני

רק הנקודה העשרונית משמשת כמפריד עשרוני במספרים.

רישיות תווים בפרמטרים

למעט כמה יוצאים מהכלל, כל הפרמטרים רגישים לאותיות רישיות/קטנות.

כתובת URL להחזרה

בלוח הניהול של AxtonPay, בדף הגדרות התשלום, ניתן להגדיר כתובות URL של החנות לקבלת התראות שרת-לשרת מ-AxtonPay, כמו גם כתובות URL להפניית הקונה לאחר תשלום החשבונית או ביטולה, וכן במקרה של שגיאה.

ניתן לעקוף כתובות URL אלו בבקשת יצירת החשבונית.

שיטות של AxtonPay API

יצירת חשבונית: /api/v1/private/checkout/payment/create

המתודה /api/v1/private/checkout/payment/create מתחילה את יצירת החשבונית.

אם ההצלחה, השיטה מחזירה קישור ('invoice_url') אליו עליך להפנות את הלקוח לתשלום.

פרמטרים של חשבונית אישית:

  • time (נדרש) - POSIX timestamp (Unix time)
  • amount (נדרש) - סכום לתשלום (מחיר המוצר או השירות שהחנות רוצה לקבל)
  • currency (נדרש) - קוד מטבע בן 3 אותיות לפי ISO 4217-alpha, לא רגיש לאותיות גדולות/קטנות
  • pms (נדרש) - שיטות התשלום מוצגות בעמוד החיוב. אם ברצונך לאפשר את כל שיטות התשלום, הערך הוא 'all'; אם ברצונך לאפשר רק חלק מהן, פרט את מזהי המספרים שלהן המופרדים בפסיקים.
  • pm - מזהה של שיטת התשלום שנבחרה. חשוב שאם הפרמטר 'pm' יעבור, החשבונית תיווצר ב'מצב שקוף', כלומר הקונה לא יראה את דף החשבונית, אלא יגיע ישירות למערכת התשלום.
  • extra_data - מערך אסוציאטיבי המכיל כל נתון נוסף; נתון זה מוחזר לחנות בשלמותו
  • shop_user_id - מזהה המשתמש בחנות, הוא מוחזר לחנות בצורתו שאין בה שינוי
  • shop_payment_id - מזהה תשלום בחנות, הוא מוחזר לחנות בצורתו שאין בה שינוי
  • shop_name - שם החנות (יופיע בדף החשבונית)
  • shop_payment_desc - תיאור הזמנה (מוצג בדף החשבונית)
  • shop_payment_remark - ההערות שלך לגבי התשלום הזה (זהו שדה לכל הערות שיש לך על התשלום, שאינו AxtonPay עובר לשום מקום; הוא נראה רק ברשימת התשלומים; הוא לא חוזר לחנות)
  • valid_time - המרווח הזמני שבו ניתן לשלם את החשבונית; בשניות
  • view_time - מרווח זמן שבו החשבונית זמינה לצפייה דרך קישור חיצוני; בשניות; הספירה לאחור מתחילה לאחר שהתקופה 'valid_time' מסתיימת
  • server_notification_method - שיטה לשליחת הודעות משרת לשרת לגבי סטטוסי תשלום לחנות; ערכים תקפים: POST, GET

חלק מההגדרות של החשבונית מוגדרות בעמוד הגדרות הסליקה. אך הערכים שנשלחים בבקשה יקבלו עדיפות על פני ההגדרות האלה.

פרמטרי התשלום שניתן לעקוף עבור חשבונית זו:

  • customer_success_url - קישור אליו ינותב הקונה אם החשבונית תשלם בהצלחה (כלומר אם מצב החשבונית הוא 'paid' או 'overpaid').
  • customer_cancel_url - קישור שאליו הקונה יועבר אם התשלום יבוטל
  • customer_fail_url - קישור שאליו יועבר הקונה אם התשלום יסתיים בשגיאה
  • server_notification_url - קישור לשליחת התראות סטטוסי תשלום משרת לשרת לחנות

הערה: כדי לעמוד במדיניות הפרטיות שלך, בדרך כלל אין צורך לכלול את הנתונים האישיים של הלקוח בנכסי החשבונית. לדוגמה, בפרמטר "shop_user_id", עדיף לציין מזהה לקוח מופשט במקום את הדואר האלקטרוני או מספר הטלפון שלהם. גם בפרמטר "shop_payment_desc", עדיף לא לכלול נתוני לקוח בכלל, משום שהם כבר יודעים הכל על עצמם; במקום זאת, תוכל לכתוב מידע על הסחורות או השירותים ששולמו, או אפילו פשוט לציין את סוג הפעולה, לדוגמה, "רכישה" או "הטענת יתרה".

כל ההפניות מועברות בהכרח עם הפרוטוקול.

דוגמה לבקשה:

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

דוגמה לתגובה מוצלחת בבקשה ליצירת חשבונית:

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

השגת מידע על החשבונית: /api/v1/private/checkout/payment/get/{PID}

כדי לקבל את המידע שאתה צריך לקרוא למתודה /api/v1/private/checkout/payment/get/{PID}, על ידי ציון PID של החשבונית בסוף כתובת ה-URL.

פרמטרי הבקשה:

  • time (נדרש) - POSIX timestamp (Unix time)

דוגמה לשורה להכנת חתימה:

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

// String for signature calculation: 
time=1766837343

דוגמה לתשובה:

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

השוואה בין הסכום שנדרש לבין הסכום ששולם

התגובה מכילה כמה סכומים שונים (במטבע שבו הופקה החשבונית):

  • "amount" - סכום מחושב
  • "filled" - שילם חלק מהחשבונית,
  • "total_filled" - כמה הלקוח שילם בסך הכל, כולל עמלות.

אם "filled = amount", אז זה משולם בדיוק כפי שצריך להיות.

אם "filled > amount", יש תשלום יתר.

אם "filled < amount", החשבונית לא שולמה במלואה (תשלום חלקי).

חשבונית: עיבוד הודעה מ-AxtonPay על שינוי מצב

בכל פעם שמצב החשבונית משתנה, AxtonPay שולח הודעה ל-server_notification_url (בשימוש ב-server_notification_method)

נתוני דוגמה:

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

כתגובה להודעה זו AxtonPay מצפה לקבל HTTP code 200, שמאשרת את קבלתה המוצלחת. אחרת, AxtonPay ינסה שוב 12 פעמים נוספות ברווחי זמן הולכים וגדלים, ואז מצב ההודעה משתנה ל-'error' (אך זה לא משפיע על מצב החשבונית עצמה).

ערכי מצב אפשריים:

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

סטטוסים של תשלום מוצלח הם 1 (paid) ו-5 (overpaid); במקרה של קבלתם ניתן להעביר את הקנייה ששולמה ללקוח או לטעון את היתרה. עבור תשלומים עם סטטוס 5 (overpaid), במקרה של טעינת יתרת חשבון ניתן לטעון את היתרה בסכום של התשלום שהתקבל בפועל, אך במקרה של מכירת סחורות/שירותים וסכום משמעותי של תשלום יתר מומלץ ליצור קשר עם המשלם ולהחליט איתו כיצד להתמודד עם תשלום היתר.

סטטוס החלקי הצלחות הוא 4 (underpaid); במקרה של קבלת סטטוס זה ניתן להטעין מחדש את היתרה בסכום של התשלום שהתקבל בפועל. עם זאת, סטטוס זה אינו נחשב כהצלחה במכירת סחורות/שירותים.

כל שאר הסטטוסים - 0 (pending), 2 (error), 3 (canceled by customer) משמעותם חוסר מוחלט בתשלום; במקרה של קבלתם אין לבצע פעולות של הפקדת יתרה או מכירת סחורות/שירותים.

בדיקת חתימה

כדי להיות בטוחים שההודעה נשלחת על ידי AxtonPay בדיוק, יש צורך לאמת את החתימה של ההודעה שהתקבלה לפני שמאמינים לה. האימות דומה לחתימה על הבקשות שלך, רק שנוספת שלב אחרון, שבו יש להשוות את החתימה המחושבת עם כותרת ה-HTTP שהתקבלה 'Sign'.

הצעדים העיקריים לאחר קבלת הודעה על שינוי מצב התשלום הם כדלקמן:

  • קח את כל מחרוזת הטיעונים (QUERY_STRING) מההודעה שהתקבלה,
  • קח את כל הPOST data (REQUEST_BODY) מההודעה שהתקבלה,
  • חשב את החתימה באמצעות אותם QUERY_STRING + REQUEST_BODY ואת ה-'Secret key' המתאים,
  • השווה את החתימה המחושבת עם זו שהתקבלה בכותרת ה-HTTP 'Sign',
  • אם החתימות זהות, ההודעה באמת הגיעה מ-AxtonPay;
  • אם החתימות שונות, ייתכן שמדובר בניסיון לרמות מצד המשלם.

דוגמה לשורה ליצירת חתימה:

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

אישור שהחנות עיבדה את פרטי התשלום: /api/v1/private/checkout/payment/confirm/{PID}

בקשה זו נשלחת לAxtonPay בתגובה להודעה שנמסרה ממנו. מבחינת פונקציונליות, מדובר באישור שהחנות קיבלה ועיבדה בהצלחה את ההודעה שהתקבלה.

כדי לשלוח בקשה, יש לקרוא למתודה /api/v1/private/checkout/payment/confirm/{PID}, על ידי ציון ה-pid של החשבונית בסוף כתובת ה-URL.

פרמטרי בקשה:

  • time (נדרש) - POSIX timestamp (Unix time)
  • status (נדרש, מספר שלם) - מספר מצב התשלום עבורו החנות שולחת אישור

אם הסטטוס המשודר תואם את הסטטוס הנוכחי של חשבונית זו במערכת, AxtonPay יגיב עם 'OK' ואם הוא לא תואם, הוא יגיב עם שגיאה.

דוגמה לשורה ליצירת חתימה:

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

דוגמה לתגובה אם מצב התשלום הנוכחי זהה:

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

דוגמה לתגובה אם מצב התשלום הנוכחי שונה מהמצב שנשלח בבקשה:

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

קודי מטבע

המטבעות שניתן להשתמש בהם ליצירת חשבונית.

רוב קודי המטבעות בהם משתמשים שייכים למטבעות פיאט, והם שווים ל-ISO 4217. גם הרשימה כוללת כמה מטבעות קריפטוגרפיים.

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