AxtonPay API

Document version: 0.9

பெரும்பாலான தகவல்

API இறுதி புள்ளி

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

Content-type

API இரண்டு உள்ளடக்க வகைகளுடன் HTTP கோரிக்கைகளை ஏற்றுக்கொள்கிறது: 'application/x-www-form-urlencoded', 'application/json'.

HTTP தலைப்பு POST உடலின் உள்ளடக்கத்தை பொருந்த வேண்டும்.

சுருக்கப் பெயர்களும் குறிக்கோள்களும்

  • {PID} - விலைப்பட்டி ஐடி, பொதுவாக இது தனித்துவமான 8-அட்சர எழுத்துப் மற்றும் எண் வரிசை ஆகும்.
  • Shop - AxtonPay சேவையின் மூலம் கட்டணங்களை ஏற்றுக் கொள்வதற்கான உங்கள் இணையத்தளம்

API உடன் பணியாற்றும் குற_algo

பணம் பெறும் சாதாரண செயல்முறை:

  • ஒரு பில்லினை உருவாக்கவும் ('/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}') உங்களைக் காசோலை சரிபார்க்க வேண்டும்.

கோரிக்கைகளின் அங்கீகாரம்

ஒரு கோரிக்கையை அனுமதிப்பதற்கு, ஒரு சிறப்பு முறையில் உருவாக்கப்பட்ட ஸ்ட்ரிங்கில் இருந்து ஹாஷ் கணக்கிடுவது ضروری. அந்த ஸ்ட்ரிங்க் URL காரணிகளை (QUERY_STRING) மற்றும் POST கோரிக்கையின் உடலை (REQUEST_BODY) இணைத்து (ஒட்டிவைத்து) உருவாக்கப்படுகிறது. அனைத்து கூறுகளும் சர்வரில் அனுப்பப்பட உள்ள வடிவில் சரியாக எடுத்துக் கொள்ளப்பட வேண்டும் என்பதுதான் முக்கியம். URL காரணிகள் (QUERY_STRING) URL-இல் இருந்து ஒரே வரியில் எடுத்துக் கொள்ளப்பட வேண்டும், காரணிகளின் வரிசையை மாற்றாமல், எந்த கூறுகளும் தவற விடாமல். POST கோரிக்கையின் உடல் (REQUEST_BODY) எந்த மாற்றமும் செய்யாமல் பயன்படுத்த வேண்டும், அதில் உள்ள குறியீடுகள், இடைவெளிகள், கூட்டு குறில், வரிசை இடைவெளிகளை அகற்றாதவாறு.

காலியான POST கோரிக்கை உடல் உள்ள சந்தர்ப்பங்களில், மற்றும் காலியான URL_ARGUMENTS உள்ள சந்தர்ப்பத்தில், அந்த கூறு வெறும் காலியான சரம் ஆகும்.

கையொப்ப கோரிப்பில் தரவின் வரிசை: QUERY_STRING முதலில், பின்னர் POST தரவு. அவற்றுக்கு இடையில் எந்த இணைப்புச் சின்னங்களையும் சேர்க்கக் கூடாது, இரண்டு உரை ஸ்ட்ரிங்குகளை இணைப்பதற்கே.

மீண்டும் ஒரு முறை, ஒவ்வொரு குறியீடும் முக்கியமானது. நீங்கள் ஒரு இடைவெளியையும் அல்லது புதிய வரி குறியீட்டையும் கூடச் சேர்க்கக்கூடாது அல்லது நீக்கக்கூடாது. சேவையகத்தால் பெறப்பட்ட மூல தரவுகளை மட்டுமே பயன்படுத்துங்கள்.

திரண்டostringயிலிருந்து SHA-256 ஹாஷ் 'Secret key' என்பதைக் கொண்டு எடுக்கப்படுகிறது மற்றும் அது hash_hmac() செயல்பாட்டின் இரண்டாவது பராமரிப்பாகப் பயன்படுகிறது.

நடப்பு POSIX timestamp (Unix time) ஆகியதை கொண்டுள்ள 'time' அளவுருவை கடைசியாக வழங்குவது கட்டாயம்.

இந்த கையெழுத்து 24 மணி நேரத்திற்கு செல்லுபடியானது. 'time' பரிமாணத்தின் மதிப்பு தற்போதைய சேவையக நேரத்தின்மீது 24 மணி நேரத்தைக் கடந்தால் (முன்னோக்கியாகவோ பின்னோக்கியாகவோ), கையெழுத்து பிழையின்றி கணக்கிடப்பட்டாலும் கடிதம் தோல்வியடையும்.

சந்தையாளர் பலகை ஒரு கோரிக்கையை சில கையொப்பத்துடன் ஏற்றுக் கொண்டால் அந்த கையொப்பத்தை மீண்டும் பயன்படுத்த முடியாது, அதே அளவுருக்களுடன் கோரிக்கையை அனுப்புவதற்காக கூட (இதில் அளவுரு 'time' அடங்கும்).

முடிந்த ஹாஷ் HTTP தலைப்பில் 'Sign' அனுப்பப்படுகிறது.

கணக்கிடப்பட்ட கையொப்பத்திற்கு கூடுதலாக, கோரிக்கையில் பயன்படுத்தப்பட்ட API விசையை கொண்ட 'Api-Key' தலைப்பும் இருக்க வேண்டும். உதாரணம்:

$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 கோரிக்கையின் உட்பிரிவிலும் ஏற்றுக்கொள்கிறது.

பூலியன் மாறிகள்

API Boolean மாறிலிகளில் '0' அல்லது '1' பெற எதிர்பார்க்கிறது, ஆனால் மறைமுக வகைப் பரிமாற்றத்தின் காரணமாக, எந்த உரை எழுத்து வரிசையும் '1' போல கருதப்படும், 'false' என்ற வார்த்தையையும் உள்ளடக்கி. ஆகையால், Boolean மாறிலிக்கு தெளிவாக 'FALSE' மதிப்பை அமைக்க, அதற்கு '0' மதிப்பை அல்லது காலியான 문자열 ஐப் பரிமாற்றம் செய்ய வேண்டும்.

தசமப் பிரிப்பி

எண்களில் தசமக் கோடியாக வெறும் தசமப் புள்ளியை மட்டுமே பயன்படுத்துகின்றனர்.

பாராமீட்டர்களில் எழுத்துரு எழுத்து

சிறிய சில விதிவிலக்குகளைத் தவிர, எல்லா அளவுருக்களும் எழுத்துக்களின் பெரிய/சிறிய வேறுபாட்டுக்கு பற்றாக்குறை ஆவாகும்.

பெரும்படியான URL திரும்ப அழைவு

AxtonPay-இன் நிர்வாகப் பானலில், கட்டண அமைப்புகள் பக்கத்தில், AxtonPay-இனிருந்து சர்வர்-சர்வர் அறிவிப்புகளைப் பெற கடை URL-களை அமைக்க முடியும், மற்றும் பில்லிங் கட்டணத் தொகை செலுத்தப்பட்ட பிறகு அல்லது ரத்து செய்யப்பட்டதும் வாங்கியவரை மறுவழிப்படுத்த URL-களையும், மேலும் பிழை ஏற்பட்டால் URL-களையும் அமைக்க முடியும்.

இந்த URLகளை வரவுச்சீட்டு உருவாக்கும் கோரிக்கையில் மாற்ற முடியும்.

AxtonPay API முறைகள்

Invoice உருவாக்கம்: /api/v1/private/checkout/payment/create

முறை /api/v1/private/checkout/payment/create விலைப்பட்டியல் உருவாக்கத்தை துவக்குகிறது.

வெற்றிகரமாக இருந்தால், அந்த முறை ஒரு இணைப்பை ('invoice_url') திருப்பி அளிக்கும், அதற்கு நீங்கள் வாடிக்கையாளரை கட்டணத்திற்கு அனுப்ப வேண்டும்.

சுய விசாரணை விவரங்கள்:

  • time (தேசிய) - POSIX timestamp (Unix time)
  • amount (தேசிய) - செலுத்த வேண்டிய தொகை (கடை பெற விரும்பும் பொருள் அல்லது சேவையின் விலை)
  • currency (தேசிய) - ISO 4217-alphaக்கு ஏற்ப 3-அक्षர நாணய குறியீடு, பெரிய/சிறிய எழுத்துக்களைப் பொருட்படுத்தாது
  • 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

சில இன்வாய்ஸ் அமைப்புகள் Checkout அமைப்புகள் பக்கத்தில் அமைக்கப்படுகின்றன. ஆனால் கோரிக்கையில் அனுப்பப்படும் மதிப்புகள் இந்த அமைப்புகளைவிட முன்னுரிமை பெறும்.

இந்த விலாசிக்கான காசோலைக்கான பின்வரும் பரிசீலனை அளவுகோல்களை மாற்றலாம்:

  • customer_success_url - விலைப்பட்டியல் வெற்றிகரமாக செலுத்தப்பட்டால் வாங்குனர் மறு வழிமறிச் செய்யப்படும் இணைப்பை (அதாவது விலைப்பட்டியல் நிலை 'paid' அல்லது 'overpaid' ஆக இருந்தால்)
  • customer_cancel_url - செலுத்துதல் ரத்து செய்யப்பட்டால் வாங்குநர் மீண்டும் அனுப்பப்பட வேண்டிய இணைப்பு
  • customer_fail_url - கட்டணம் பிழையுடன் முடிந்தால் comprador மறுபரிசோதனைக்கு திசைமாற்றப்படும் ஒரு இணைப்பு
  • 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} மெத்தடைக் கால் செய்ய, URL இறுதியில் விலைப்பட்டியல் PID ஐ குறிப்பிடுங்கள்.

விசாரணை параметр்கள்:

  • 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_method ஐ பயன்படுத்தி server_notification_url க்கு ஒரு அறிவிப்பை அனுப்புகிறது

உதாரண தரவுகள்:

{
    "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க்கு அனுப்பப்படுகிறது, அதிலிருந்து பெறப்பட்ட அறிவிப்பிற்கு பதிலாக. செயல்படுவதற்காக, இது கடை பெற்ற அறிவிப்பை வெற்றிகரமாக பெற்று செயலாக்கியுள்ளதா என்பதற்கான உறுதிப்பாட்டாகும்.

ஒரு கோரிக்கையை அனுப்ப, URL இன் கடைசியில் உள்ள பில்லின் pid ஐ குறிப்பிடுவதன் மூலம் /api/v1/private/checkout/payment/confirm/{PID} முறைமையை அழைக்கவும்.

கோரிக்கை பராமீட்டர்கள்:

  • 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 கட்டாய நாணயம்