Appearance
Services
Get a list of all available services for your account.
Endpoint: POST /services
Request
bash
curl -X POST https://api.paynet.one/services \
-H "Content-Type: application/json" \
-d '{
"auth": {
"id": 123,
"key": 1706360400000,
"hash": "a1b2c3d4e5f6..."
}
}'php
<?php
$url = 'https://api.paynet.one/services';
$data = [
'auth' => [
'id' => 123,
'key' => time() * 1000,
'hash' => md5(123 . $token . time() * 1000)
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);javascript
const response = await fetch('https://api.paynet.one/services', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
auth: {
id: 123,
key: Date.now(),
hash: md5(`123${token}${Date.now()}`)
}
})
});
const data = await response.json();
console.log(data);python
import requests
import hashlib
import time
url = 'https://api.paynet.one/services'
key = int(time.time() * 1000)
hash_value = hashlib.md5(f"123{token}{key}".encode()).hexdigest()
response = requests.post(url, json={
'auth': {
'id': 123,
'key': key,
'hash': hash_value
}
})
print(response.json())Response
json
{
"services": [
{
"id": "et-mc",
"active": true,
"name": "Etisalat Wasel Prepaid",
"biller_name": "Etisalat",
"category_name": "Mobile Prepaid",
"subcategory_name": "Airtime",
"amount_min": 5,
"amount_max": 525,
"amount_step": 5,
"commission": {
"value": 0,
"type": 0
},
"is_pin_based": false,
"is_account_required": true
},
{
"id": "itunes_aed_100",
"active": true,
"name": "Apple Gift Card - AED 100",
"biller_name": "Apple UAE",
"category_name": "Gift Cards",
"subcategory_name": "Apple",
"amount_min": 100,
"amount_max": 100,
"amount_step": 0,
"commission": {
"value": 0,
"type": 0
},
"is_pin_based": true,
"is_account_required": false
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique service identifier (use in transaction requests) |
active | boolean | Whether service is currently available |
name | string | Service display name |
biller_name | string | Service provider name |
category_name | string | Service category |
subcategory_name | string | Service subcategory |
amount_min | number | Minimum transaction amount |
amount_max | number | Maximum transaction amount |
amount_step | number | Step/increment allowed for amounts (e.g., 5 means amounts must be a multiple of 5) |
commission.value | number | Commission percentage or fixed amount |
commission.type | integer | Commission type: 0 = percentage, 1 = fixed |
is_pin_based | boolean | false = Direct Recharge, true = e-Voucher/Gift Card |
is_account_required | boolean | true = account field is required in the Check method |
Understanding Service Types
The is_pin_based field determines the transaction flow:
is_pin_based | Type | Description | Example |
|---|---|---|---|
false | Direct Recharge | Amount goes directly to customer's account | Etisalat, du prepaid |
true | e-Vouchers & Gift Cards | Returns a PIN/voucher code | Mobile Recharge e-Voucher, Salik, Steam, Google Play Gift Card |
TIP
Cache the services list and refresh periodically (e.g., every hour) to reduce API calls.