Lister les Recharges Mobiles
curl --request GET \
--url https://api.oneclickdz.com/v3/mobile/list \
--header 'X-Access-Token: <api-key>'import requests
url = "https://api.oneclickdz.com/v3/mobile/list"
headers = {"X-Access-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Access-Token': '<api-key>'}};
fetch('https://api.oneclickdz.com/v3/mobile/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.oneclickdz.com/v3/mobile/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Access-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.oneclickdz.com/v3/mobile/list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Access-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.oneclickdz.com/v3/mobile/list")
.header("X-Access-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.oneclickdz.com/v3/mobile/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Access-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"items": [
{}
],
"pagination": {
"page": 123,
"pageSize": 123,
"totalPages": 123,
"totalResults": 123
}
},
"meta": {
"timestamp": "<string>"
}
}Recharges mobiles
Lister les Recharges Mobiles
Obtenir une liste paginée des transactions de recharge mobile
GET
/
v3
/
mobile
/
list
Lister les Recharges Mobiles
curl --request GET \
--url https://api.oneclickdz.com/v3/mobile/list \
--header 'X-Access-Token: <api-key>'import requests
url = "https://api.oneclickdz.com/v3/mobile/list"
headers = {"X-Access-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Access-Token': '<api-key>'}};
fetch('https://api.oneclickdz.com/v3/mobile/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.oneclickdz.com/v3/mobile/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Access-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.oneclickdz.com/v3/mobile/list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Access-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.oneclickdz.com/v3/mobile/list")
.header("X-Access-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.oneclickdz.com/v3/mobile/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Access-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"items": [
{}
],
"pagination": {
"page": 123,
"pageSize": 123,
"totalPages": 123,
"totalResults": 123
}
},
"meta": {
"timestamp": "<string>"
}
}Vue d’Ensemble
Retourne une liste paginée de toutes les transactions de recharge mobile de votre compte avec filtrage optionnel par date.Paramètres de Requête
integer
défaut:1
Numéro de page (minimum : 1)
integer
défaut:20
Éléments par page (minimum : 1, maximum : 100)
string
Filtre de date de début (ISO 8601 :
2025-10-01T00:00:00Z)string
Filtre de date de fin (ISO 8601 :
2025-10-31T23:59:59Z)Les paramètres
from et to doivent être fournis ensemble lors du filtrage par date.Réponse
boolean
requis
Indique si la requête a réussi
object
requis
Exemples
curl https://api.oneclickdz.com/v3/mobile/list?page=1&pageSize=20 \
-H "X-Access-Token: YOUR_API_KEY"
const response = await fetch(
"https://api.oneclickdz.com/v3/mobile/list?page=1&pageSize=20",
{ headers: { "X-Access-Token": "YOUR_API_KEY" } }
);
const { data } = await response.json();
console.log(data.items, data.pagination);
response = requests.get(
'https://api.oneclickdz.com/v3/mobile/list',
headers={'X-Access-Token': 'YOUR_API_KEY'},
params={'page': 1, 'pageSize': 20}
)
items = response.json()['data']['items']
pagination = response.json()['data']['pagination']
<?php
$url = 'https://api.oneclickdz.com/v3/mobile/list?page=1&pageSize=20';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Access-Token: YOUR_API_KEY']);
$response = json_decode(curl_exec($ch), true);
$items = $response['data']['items'];
?>
Exemple de Réponse
{
"success": true,
"data": {
"items": [
{
"ref": "API-+213665983439-test-1761698196315-suggest",
"status": "REFUNDED",
"plan_code": "PREPAID_DJEZZY",
"MSSIDN": "0600000002",
"topup_amount": 500,
"balance_amount": 0,
"created_at": "2025-10-29T00:36:36.385Z",
"_id": "69016194e9e88196b4eb64ce",
"refund_message": "هذا رقم الهاتف لا يقبل العرض المرسل، الرجاء إرسال أحد العروض التالية",
"suggested_offers": [
{
"typename": "📋 FACTURE | فاتورة",
"plan_code": "FACTURE_DJEZZY",
"amount": 500
}
]
},
{
"ref": "API-+213665983439-test-1761698159224-success",
"status": "FULFILLED",
"plan_code": "PREPAID_DJEZZY",
"MSSIDN": "0778037340",
"topup_amount": 500,
"balance_amount": 0,
"created_at": "2025-10-29T00:35:59.378Z",
"_id": "6901616fe9e88196b4eb64b0"
}
],
"pagination": {
"page": 1,
"pageSize": 5,
"totalPages": 72,
"totalResults": 358
}
},
"meta": {
"timestamp": "2025-10-29T00:36:47.159Z"
}
}
Cas d’Utilisation
Historique des Transactions
Affichez l’historique des recharges aux utilisateurs
Rapports et Analytiques
Générez des rapports de ventes et des statistiques
Réconciliation
Vérifiez les transactions et les variations de solde
Support Client
Recherchez les transactions des utilisateurs pour le support
Exemples de Filtrage
Par Plage de Dates
curl "https://api.oneclickdz.com/v3/mobile/list?from=2025-10-01T00:00:00Z&to=2025-10-31T23:59:59Z" \
-H "X-Access-Token: YOUR_API_KEY"
const from = "2025-10-01T00:00:00Z";
const to = "2025-10-31T23:59:59Z";
const response = await fetch(
`https://api.oneclickdz.com/v3/mobile/list?from=${from}&to=${to}`,
{ headers: { "X-Access-Token": "YOUR_API_KEY" } }
);
response = requests.get(
'https://api.oneclickdz.com/v3/mobile/list',
headers={'X-Access-Token': 'YOUR_API_KEY'},
params={
'from': '2025-10-01T00:00:00Z',
'to': '2025-10-31T23:59:59Z',
'page': 1,
'pageSize': 50
}
)
Filtrage Côté Client
const { items } = data;
// Filter by status
const fulfilled = items.filter((t) => t.status === "FULFILLED");
const refunded = items.filter((t) => t.status === "REFUNDED");
// Filter by operator
const djezzy = items.filter((t) => t.plan_code.includes("DJEZZY"));
// Filter by amount range
const large = items.filter((t) => t.topup_amount >= 1000);
// Calculate totals
const totalAmount = items.reduce((sum, t) => sum + t.topup_amount, 0);
const totalCost = items.reduce((sum, t) => sum + t.balance_amount, 0);
const profit = totalAmount - totalCost;
Bonnes Pratiques
Pagination Efficace
Pagination Efficace
- Utilisez des tailles de page raisonnables (20 à 50 éléments)
- Mettez les résultats en cache si possible
- Implémentez “Charger Plus” ou le défilement infini
- Utilisez
pagination.totalPagespour déterminer s’il y a d’autres pages
Filtrage par Date
Filtrage par Date
- Fournissez toujours les paramètres
fromettoensemble - Utilisez le format ISO 8601 correct - Tenez compte du fuseau horaire de l’utilisateur lors du filtrage - Définissez des plages de dates raisonnables pour les performances
Performance
Performance
- Mettez en cache les données de liste pendant de courtes périodes - Utilisez des filtres de date pour limiter les ensembles de résultats - Évitez de récupérer toutes les pages à la fois - Indexez par created_at dans votre base de données locale
Affichage aux Utilisateurs
Affichage aux Utilisateurs
- Affichez le statut avec des icônes/couleurs
- Formatez les horodatages dans le fuseau horaire local
- Affichez les logos des opérateurs
- Liez vers des pages de statut détaillées
- Affichez la raison du remboursement pour les recharges échouées
Endpoints Associés
Envoyer une Recharge
Créer une nouvelle recharge
Vérifier le Statut
Suivre une recharge spécifique
Lister les Forfaits
Voir les forfaits disponibles

