Authentification
Tous les endpoints exigent un Bearer token dans l'en-tête Authorization.
Obtenir votre clé API
- Connectez-vous à Proxnum et ouvrez votre page profil
- Allez à la section « Gestion des clés API »
- Cliquez « Créer une clé API »
- Copiez le token affiché
Incluez le token API dans chaque requête :
Authorization: Bearer YOUR_API_TOKEN_HERE Accept: application/json Content-Type: application/json
Liens rapides :
- Codes pays canoniques (paramètre country dans l'API)
- Codes service canoniques (paramètre service dans l'API)
Format de réponse commun
Les erreurs utilisent une structure normalisée avec le champ code. Toutes les erreurs suivent ce modèle :
{
"success": false,
"code": "no_numbers",
"message": "No numbers available for the selected service and country"
}
Endpoints
GET /api/v1/resell/price?service=&country=
Obtenir prix de base et de vente pour un service et un pays. Estimez le coût avant commande.
Paramètres (query) : service (string), country (int)
Exemple de requête :
curl -s -X GET "https://proxnum.com/api/v1/resell/price?service=ig&country=6" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Réponse succès :
{
"country": "6",
"service": "ig",
"base_price": 0.0334,
"sell_price": 0.1114892
}
GET /api/v1/prices
Tarification complète pour tous les services et pays. Retourne prix de base et prix revendeur.
Paramètres (query, optionnels) :
serviceservice (string) — filtrer par code service (ex. ig, wa, tg)countrycountry (int) — filtrer par code pays
Exemple (tous les prix) :
curl -s -X GET "https://proxnum.com/api/v1/prices" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Exemple (filtré par pays) :
curl -s -X GET "https://proxnum.com/api/v1/prices?country=6" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Réponse succès (filtrée par pays) :
{
"success": true,
"prices": {
"6": {
"ig": {
"base_price": 0.0334,
"sell_price": 0.1114892,
"available": 245
},
"wa": {
"base_price": 0.0389,
"sell_price": 0.1298737,
"available": 189
},
"tg": {
"base_price": 0.0223,
"sell_price": 0.0744551,
"available": 521
},
"go": {
"base_price": 0.0278,
"sell_price": 0.0928206,
"available": 312
}
}
}
}
Note : Réponse imbriquée : premier niveau = codes pays, second = codes service. Chaque service contient base_price, sell_price et available (ou null).
POST /api/v1/resell/virtual/buy
Acheter un numéro temporaire (virtuel). Tente d'allouer un numéro et de débiter le compte.
Corps (JSON) : {"service":"ig","country":6}
Exemple de requête :
curl -s -X POST "https://proxnum.com/api/v1/resell/virtual/buy" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"service":"ig","country":6}'
Réponse succès (normalisée) :
{
"success": true,
"activation": {
"id": 737,
"phone": "62895406203932",
"activation_id": "4390520873",
"msg": "Waiting Sms",
"date_created": "2025-11-08 21:50:34",
"amount_paid": 0.111489,
"status": 1
}
}
Codes d'erreur courants :
{
"success": false,
"code": "no_numbers",
"message": "No numbers available for this service in the selected country"
}
{
"success": false,
"code": "insufficient_balance",
"message": "Not enough balance to place the order"
}
GET /api/v1/resell/virtual/{id}/status
Vérifier le statut d'une activation. {id} accepte l'activation id retourné à l'achat.
Exemple de requête :
curl -s -X GET "https://proxnum.com/api/v1/resell/virtual/4390520873/status" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Succès (code disponible) :
{
"success": true,
"status": "completed",
"code": "1234",
"activation": { "id": 737, "phone": "628...", "activation_id": "4390520873" }
}
POST /api/v1/resell/virtual/resend
Demander un renvoi/réactivation. Utilisez l'activation id dans le corps.
Corps : {"activation_id":"4390520873"}
curl -s -X POST "https://proxnum.com/api/v1/resell/virtual/resend" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"activation_id":"4390520873"}'
Réponse (acceptée) :
{
"success": true,
"message": "Resend requested; new activation created",
"activation": { "id": 738, "activation_id": "4390520874", "phone": "628..." }
}
POST /api/v1/resell/virtual/cancel
Demander annulation et remboursement. Le serveur évalue si l'activation est remboursable.
Corps : {"activation_id":"4390520873"}
curl -s -X POST "https://proxnum.com/api/v1/resell/virtual/cancel" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"activation_id":"4390520873"}'
Accepté :
{
"success": true,
"code": "cancel_accepted",
"message": "Cancellation accepted, refund processed"
}
Rejeté :
{
"success": false,
"code": "cancel_rejected",
"message": "Cancellation rejected — activation already completed or not refundable"
}
GET /api/v1/resell/activations
Liste des activations de l'utilisateur (paginée). Paramètres page et per_page.
curl -s -X GET "https://proxnum.com/api/v1/resell/activations?page=1&per_page=25" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Notes d'implémentation
- Les opérations de débit sont idempotentes par commande ; vérifiez order ou transaction.
- Utilisez l'endpoint price pour simuler les coûts avant commande.
- Codes d'erreur : no_numbers, insufficient_balance, service_unavailable, cancel_rejected.
- Gérez toujours succès et erreurs dans votre intégration
- Implémentez la gestion des timeouts réseau
- Mettez en cache les listes pays et services
- Utilisez les webhooks pour les mises à jour en temps réel