Document version: 0.9
ਸਧਾਰਣ ਜਾਣਕਾਰੀ
ਏਪੀਆਈ ਐਂਡਪੌਇੰਟ
https://mp.axtonpay.com/api/v1/private/checkout
Content-type
API 2 ਸਮੱਗਰੀ ਕਿਸਮਾਂ ਵਾਲੀਆਂ HTTP ਬੇਨਤੀਆਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਦਾ ਹੈ: 'application/x-www-form-urlencoded', 'application/json'.
HTTP ਹੈੱਡਰ POST ਬਾਡੀ ਦੀ ਸਮੱਗਰੀ ਵਿੱਚ ਫਿੱਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਛੋਟੇ ਸ਼ਬਦ ਅਤੇ ਪਰਿਭਾਸ਼ਾਵਾਂ
- {PID} - ਚਲਾਨ ਦਾ ਆਈਡੀ, ਆਮ ਤੌਰ 'ਤੇ ਇਹ ਇੱਕ ਵਿਲੱਖਣ 8-ਅੱਖਰਾਂ ਵਾਲੀ ਅਲਫਾਨ੍ਯੂਮੈਰਿਕ ਲੜੀ ਹੁੰਦੀ ਹੈ।
- Shop - ਤੁਹਾਡੇ ਵੈੱਬਸਾਈਟ ਜੋ AxtonPay ਸਰਵਿਸ ਦੇ ਜ਼ਰੀਏ ਭੁਗਤਾਨ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ
ਏਪੀਆਈ ਨਾਲ ਕੰਮ ਕਰਨ ਦਾ ਐਲਗੋਰਿਦਮ
ਭੁਗਤਾਨ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਆਮ ਕਾਰਵਾਈ ਕ੍ਰਮ:
- ਇਨਵੌਇਸ ਬਣਾਓ ('/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 ਡੇਟਾ। ਤੁਹਾਨੂੰ ਇਨ੍ਹਾਂ ਦੇ ਵਿਚਕਾਰ ਕੋਈ ਜੋੜਨ ਵਾਲੇ ਨਿਸ਼ਾਨ ਨਹੀਂ ਪਾਉਣੇ, ਸਿਰਫ਼ ਦੋ ਟੈਕਸਟ ਸਟਰਿੰਗਾਂ ਨੂੰ ਜੋੜੋ।
ਫਿਰ ਇੱਕ ਵਾਰੀ, ਹਰ ਚਿੰਨ੍ਹ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਤੁਹਾਨੂੰ ਕਿਸੇ ਵੀ ਵਾਈਟਸਪੇਸ ਜਾਂ ਨਵੀਂ ਲਾਈਨ ਦੇ ਚਿੰਨ੍ਹ ਨੂੰ ਵੀ ਜੋੜਨਾ ਜਾਂ ਹਟਾਉਣਾ ਨਹੀਂ ਚਾਹੀਦਾ। ਸਿਰਫ ਸਰਵਰ ਵੱਲੋਂ ਪ੍ਰਾਪਤ ਕੱਚਾ ਡੇਟਾ ਹੀ ਵਰਤੋ।
ਨਤੀਜੇ ਵਾਲੀ ਸਤਰ ਤੋਂ ਕੁੰਜੀ 'Secret key' ਨਾਲ ਇੱਕ SHA-256 ਹੈਸ਼ ਲਈ ਜਾਂਦੀ ਹੈ ਅਤੇ ਫੰਕਸ਼ਨ hash_hmac() ਦੇ ਦੂਜੇ ਤਰਕ ਵਜੋਂ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।
ਮੌਜੂਦਾ POSIX timestamp (Unix time) ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਵਾਲੇ '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¤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' */
ਹੋਰ ਉਦਾਹਰਨ ਵਿੱਚ ਸਫੇਦ ਥਾਂਵਾਂ ਅਤੇ ਲਾਈਨ ਬ੍ਰੇਕਾਂ 'ਤੇ ਧਿਆਨ ਦਿਓ:
/*
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()}'
ਪੈਰਾਮੀਟਰ
ਏਪੀਆਈ ਸਭ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਦੋਹਾਂ QUERY_STRING ਅਤੇ POST ਬੇਨਤੀ ਦੇ ਬਾਡੀ ਵਿੱਚ قبول ਕਰਦਾ ਹੈ।
ਬੂਲੀਅਨ ਵੇਰੀਏਬਲ
API ਉਮੀਦ ਕਰਦੀ ਹੈ ਕਿ ਬੂਲੀਅਨ ਵੈਰੀਏਬਲ ਵਿੱਚ '0' ਜਾਂ '1' ਮਿਲੇ, ਪਰ ਨਿਰਯਾਤ ਟਾਈਪ ਰੂਪਾਂਤਰਣ ਦੇ ਕਾਰਨ, ਕੋਈ ਵੀ ਲਿਖਤੀ ਸਤਰ ਨੂੰ '1' ਵਜੋਂ ਮੰਨਿਆ ਜਾਵੇਗਾ, ਇਨਾਂ ਤੇ ਸ਼ਬਦ 'false' ਵੀ ਸ਼ਾਮਲ ਹੈ। ਇਸ ਲਈ, ਬੂਲੀਅਨ ਵੈਰੀਏਬਲ ਲਈ 'FALSE' ਮੁੱਲ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਸੈੱਟ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇਸ ਵਿੱਚ ਜਾਂ ਤਾਂ ਮੁੱਲ '0' ਜਾਂ ਖਾਲੀ ਸਤਰ ਭੇਜਣੀ ਪਵੇਗੀ।
ਦਸ਼ਮਲਵ ਵਿਚਕਾਰਨ ਚਿੰਨ੍ਹ
ਸੰਖਿਆਂ ਵਿੱਚ ਦਸ਼ਮਲਵ ਵਿਬਾਜਕ ਵਜੋਂ ਸਿਰਫ ਦਸ਼ਮਲਵ ਬਿੰਦੂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
ਪੈਰਾਮੀਟਰਾਂ ਵਿੱਚ ਅੱਖਰਾਂ ਦਾ ਕੇਸ
ਕੁਝ ਬਰਖ਼ਾਸਤਾਂ ਦੇ ਇਲਾਵਾ, ਸਾਰੇ ਪੈਰਾਮੀਟਰ ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਹਨ।
ਕਾਲਬੈਕ URL
AxtonPay ਦੇ ਐਡਮਿਨ ਪੈਨਲ ਵਿੱਚ, ਚੈੱਕਆਉਟ ਸੈਟਿੰਗ ਪੇਜ 'ਤੇ, AxtonPay ਤੋਂ ਸਰਵਰ-ਸਰਵਰ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਟੋਰ URLs ਸੈਟ ਕਰਨਾ ਸੰਭਵ ਹੈ, ਨਾਲ ਹੀ ਇਨਵੌਇਸ ਦੀ ਭੁਗਤਾਨ ਜਾਂ ਇਸ ਦੀ ਰੱਦਗੀ ਦੇ ਬਾਅਦ ਖਰੀਦਦਾਰ ਨੂੰ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਲਈ URLs, ਅਤੇ ਗਲਤੀ ਹੋਣ ਦੀ ਸੂਰਤ ਵਿੱਚ ਵੀ।
ਇਹ URL ਇਨਵੌਇਸ ਬਣਾਉਣ ਦੀ ਬੇਨਤੀ ਵਿੱਚ ਓਵਰਰਾਈਡ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।
AxtonPay ਏਪੀਆਈ ਦੇ ਤਰੀਕੇ
ਚਲਾਨ ਬਣਾਉਣਾ: /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
ਕੁਝ ਇਨਵੌਇਸ ਦੇ ਸੈਟਿੰਗ ਚੈਕਆਊਟ ਸੈਟਿੰਗ ਪੇਜ ਤੇ ਸੈੱਟ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਪਰ অনੁਰੋਧ ਵਿੱਚ ਦਿੱਤੇ ਗਏ ਮੁੱਲ ਇਨ੍ਹਾਂ ਸੈਟਿੰਗਾਂ 'ਤੇ ਪ੍ਰਾਧਾਨਤਾ ਲੈਣਗੇ।
ਇਸ ਇਨਵੌਇਸ ਲਈ ਓਵਰਰਾਈਡ ਕੀਤੇ ਜਾ ਸਕਣ ਵਾਲੇ ਚੈੱਕਆਊਟ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਵੇਖੋ:
- 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} ਮੇਥਡ ਨੂੰ ਕਾਲ ਕਰਨਾ ਹੋਵੇਗਾ, 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"
}
}
ਮੰਗੀ ਗਈ ਰਕਮ ਅਤੇ ਭੁਗਤਾਨ ਕੀਤੀ ਗਈ ਰਕਮ ਦੀ ਤੁਲਨਾ
ਜਵਾਬ ਵਿੱਚ ਕਈ ਵakhਰੇ ਵakhਰੇ ਰਕਮਾਂ ਸ਼ਾਮਲ ਹਨ (ਉਸ ਮੁਦਰਾ ਵਿੱਚ ਜਿਸ ਵਿੱਚ ਇਨਵਾਇਸ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਸੀ):
- "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) ਦਾ ਮਤਲਬ ਭੁਗਤਾਨ ਦੀ ਪੂਰੀ ਗੈਰਹਾਜ਼ਰੀ ਹੈ; ਜੇ ਇਹ ਮਿਲਦੇ ਹਨ ਤਾਂ ਬੈਲੈਂਸ ਭਰਨ ਜਾਂ ਮਾਲ/ਸੇਵਾਵਾਂ ਦੀ ਵਿਕਰੀ 'ਤੇ ਕੋਈ ਕਾਰਵਾਈ ਨਹੀਂ ਕੀਤੀ ਜaani ਚਾਹੀਦੀ।
ਦਸਤਖਤ ਦੀ ਜਾਂਚ
ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸੂਚਨਾ 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¤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
ਪੁਸ਼ਟੀ ਕਿ ਸਟੋਰ ਨੇ ਭੁਗਤਾਨ ਜਾਣਕਾਰੀ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਹੈ: /api/v1/private/checkout/payment/confirm/{PID}
ਇਹ ਬੇਨਤੀ AxtonPay ਨੂੰ ਭੇਜੀ ਜਾਂਦੀ ਹੈ ਉਸ ਤੋਂ ਪ੍ਰਾਪਤ ਸੂਚਨਾ ਦੇ ਜਵਾਬ ਵਿੱਚ। ਕਾਰਜਕਾਰੀ ਤੌਰ 'ਤੇ, ਇਹ ਇੱਕ ਪੁਸ਼ਟੀ ਹੈ ਕਿ ਸਟੋਰ ਨੇ ਪ੍ਰਾਪਤ ਸੂਚਨਾ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਪ੍ਰਾਪਤ ਅਤੇ ਪ੍ਰਕਿਰਿਆਤਮਕ ਕੀਤਾ ਹੈ।
ਇੱਕ ਬੇਨਤੀ ਭੇਜਣ ਲਈ, ਮੈਥਡ /api/v1/private/checkout/payment/confirm/{PID} ਨੂੰ ਕਾਲ ਕਰੋ, URL ਦੇ ਅਖੀਰ ਵਿੱਚ ਇਨਵੌਇਸ ਦਾ 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 | ਫਿਆਟ ਕਰੰਸੀ |
