Documentation d'Intégration API Éligibilité WordPress
Guide d'implémentation clé en main pour intégrer l'autocomplétion BAN et l'éligibilité multi-technologies sur vos sites WordPress sans modifier le code backend.
1. Vue d'Ensemble & Authentification
L'API Telxora fournit un moteur d'éligibilité télécom national couvrant l'ensemble du territoire français (France métropolitaine et DROM-COM : Guadeloupe, Martinique, Guyane, La Réunion, Mayotte, Saint-Martin).
URLs de Base
| Environnement | Base URL | Statut |
|---|---|---|
| Production & Staging Live | https://backend.eligentra.telxora.com | Actif |
| Développement Local | http://localhost:8000 | Optionnel |
Système d'Authentification
L'authentification s'effectue via une clé API partenaire secrète transmise dans chaque requête HTTP :
1X-API-Key: telecom_live_sk_partner_sample_20262Accept: application/json2. Recherche BAN (Autocomplétion)
Pour garantir un taux de conversion maximal sur vos formulaires WordPress, l'utilisateur saisit les premières lettres de son adresse. L'API interroge instantanément la Base Adresse Nationale (BAN) officielle.
Paramètres de Requête :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| q | string | Oui | Terme de recherche (min. 2 caractères). Ex: "12 rue de la paix" |
| limit | int | Non | Nombre max de résultats (défaut : 5, max : 15) |
L'API retourne ban_id, label (adresse complète), postcode, city, imb_id (identifiant immeuble ARCEP), ainsi que les coordonnées géographiques latitude et longitude.
3. Éligibilité Multi-Technologies
Dès que l'utilisateur sélectionne une adresse dans la liste d'autocomplétion, votre script WordPress transmet le ban_id à l'endpoint d'éligibilité.
Paramètres Supportés :
- ban_id :Identifiant unique d'adresse BAN (Recommandé).
- imb_id :Identifiant d'immeuble ARCEP (Optionnel si ban_id fourni).
- partner :Code du partenaire (ex :
XIWO). Applique les règles de filtrage de technologies spécifiques.
4. Technologies Réseau & 4G/5G Mobile
L'API évalue simultanément 5 technologies télécoms distinctes selon une hiérarchie stricte :
Jusqu'à 1 Gbps symétrique. Basé sur les bases IMB ARCEP trimestrielles et les points de mutualisation PM.
Jusqu'à 300 Mbps. Évalué par proximité géospatiale avec les pylônes ANFR 5G/4G (rayon de 1.5 à 3.5 km).
Jusqu'à 100 Mbps. Déployé en zones RIP ou DROM-COM (Guadeloupe, Martinique, etc.) sans ligne fixe.
Jusqu'à 50 Mbps. Solution universelle pour les zones blanches isolées de France métropolitaine et Outre-mer.
5. Modèle JSON & Opérateurs
Exemple représentatif d'une réponse JSON 200 OK complète retournée par le moteur d'éligibilité :
1{2 "ban_id": "75102_7065_00012",3 "imb_id": "IMB/75102/X/0012",4 "address": "12 Rue de la Paix 75002 Paris",5 "city": "Paris",6 "postcode": "75002",7 "eligible": true,8 "partner": "XIWO",9 "primary_technology": "FTTH",10 "technologies": [11 {12 "technology": "FTTH",13 "status": "AVAILABLE",14 "eligible": true,15 "operator": "Orange / XP Fibre",16 "debit_max_down": "1 Gbps",17 "debit_max_up": "800 Mbps",18 "price_indicative": "29.99 €/mois",19 "decision_reason": "Bâtiment raccordé et fibré (Statut ARCEP: Déployé)"20 },21 {22 "technology": "5G_BOX",23 "status": "AVAILABLE",24 "eligible": true,25 "operator": "Free Mobile / Bouygues",26 "debit_max_down": "300 Mbps",27 "debit_max_up": "50 Mbps",28 "price_indicative": "24.99 €/mois",29 "decision_reason": "Antenne 5G active à moins de 350m"30 },31 {32 "technology": "RADIO_FWA",33 "status": "UNAVAILABLE",34 "eligible": false,35 "operator": "XIWO 5GHz",36 "decision_reason": "Hors zone de couverture radio (Zone très dense fibrée)"37 },38 {39 "technology": "SATELLITE",40 "status": "AVAILABLE",41 "eligible": true,42 "operator": "Eutelsat / Starlink",43 "debit_max_down": "50 Mbps",44 "debit_max_up": "10 Mbps",45 "price_indicative": "39.99 €/mois",46 "decision_reason": "Couverture satellitaire nationale active"47 }48 ]49}6. Code PHP & Widget WordPress
Voici la classe PHP intégrale prête à coller dans le fichier functions.php de votre thème ou dans un plugin d'extension. Elle utilise exclusivement les fonctions natives de WordPress (wp_remote_get et set_transient) :
1<?php2/**3 * Client d'intégration API Éligibilité Telxora pour WordPress4 * Compatible WordPress 5.8+, 6.x, WooCommerce et Elementor5 * 6 * Sécurité : Défini dans wp-config.php de préférence :7 * define('TELXORA_API_KEY', 'telecom_live_sk_partner_sample_2026');8 */9class Telxora_Eligibility_API {1011 private static function get_base_url() {12 return defined('TELECOM_FTTH_BASE_URL') 13 ? TELECOM_FTTH_BASE_URL 14 : 'https://backend.eligentra.telxora.com';15 }1617 private static function get_api_key() {18 return defined('TELECOM_FTTH_API_KEY') 19 ? TELECOM_FTTH_API_KEY 20 : 'telecom_live_sk_partner_sample_2026';21 }2223 private static $timeout = 8; // Timeout non bloquant en secondes2425 /**26 * 1. Recherche d'adresses Base Adresse Nationale (BAN)27 * @param string $query Texte saisi par l'internaute28 * @param int $limit Nombre max de suggestions29 * @return array Liste d'adresses normalisées avec ban_id et imb_id30 */31 public static function search_address($query, $limit = 5) {32 if (empty($query) || strlen(trim($query)) < 2) {33 return array();34 }3536 $endpoint = self::get_base_url() . '/api/v1/search/autocomplete?' . http_build_query(array(37 'q' => trim($query),38 'limit' => intval($limit),39 ));4041 $response = wp_remote_get($endpoint, array(42 'headers' => array(43 'X-API-Key' => self::get_api_key(),44 'Accept' => 'application/json',45 ),46 'timeout' => self::$timeout,47 ));4849 if (is_wp_error($response) || wp_remote_retrieve_response_code($response) !== 200) {50 return array();51 }5253 $body = wp_remote_retrieve_body($response);54 return json_decode($body, true);55 }5657 /**58 * 2. Test d'éligibilité multi-technologies complet59 * Avec cache Transient WordPress de 24 heures pour préserver vos quotas60 * @param string $ban_id Identifiant officiel BAN61 * @param string $partner Identifiant partenaire (par défaut: XIWO)62 * @return array Résultats d'éligibilité détaillés par technologie63 */64 public static function check_eligibility($ban_id, $partner = 'XIWO') {65 if (empty($ban_id)) {66 return array('success' => false, 'error' => 'Identifiant BAN requis');67 }6869 // Clé de cache transient unique70 $cache_key = 'telecom_ftth_elig_' . md5($ban_id . '_' . $partner);71 $cached = get_transient($cache_key);72 if ($cached !== false) {73 return $cached;74 }7576 $endpoint = self::get_base_url() . '/api/v1/eligibility?' . http_build_query(array(77 'ban_id' => $ban_id,78 'partner' => $partner,79 ));8081 $response = wp_remote_get($endpoint, array(82 'headers' => array(83 'X-API-Key' => self::get_api_key(),84 'Accept' => 'application/json',85 ),86 'timeout' => self::$timeout,87 ));8889 if (is_wp_error($response)) {90 return array('success' => false, 'error' => $response->get_error_message());91 }9293 $status_code = wp_remote_retrieve_response_code($response);94 $body = wp_remote_retrieve_body($response);95 $data = json_decode($body, true);9697 if ($status_code === 200) {98 // Mise en cache locale pour 24 heures (DAY_IN_SECONDS)99 set_transient($cache_key, $data, DAY_IN_SECONDS);100 return $data;101 }102103 return array('success' => false, 'status' => $status_code, 'error' => $data);104 }105}7. Codes HTTP & Gestion des Erreurs
| Code | Signification | Action Recommandée pour le Développeur |
|---|---|---|
| 200 OK | Requête valide | Traiter le tableau technologies. |
| 400 Bad Request | Paramètre manquant | Vérifier que ban_id n'est pas vide. |
| 401 Unauthorized | Clé API absente ou incorrecte | Vérifier le header X-API-Key dans votre configuration. |
| 404 Not Found | Adresse inconnue de la base | Inviter l'utilisateur à vérifier le numéro de rue ou le code postal. |
| 429 Rate Limit | Seuil de requêtes dépassé (120 req/min) | Activer le cache transient WordPress de 24h. |
8. Données & Adresses de Test
Utilisez ces adresses réelles pour valider le comportement de votre widget WordPress avant la mise en production :
| Adresse de Test | ban_id | Résultat Attendu |
|---|---|---|
| 12 Rue de la Paix 75002 Paris | 75102_7065_00012 | Fibre FTTH Déployée (1 Gbps) + 5G Active |
| 14 Boulevard Saint-Germain 75005 Paris | 75105_8545_00014 | Fibre FTTH Raccordée (1 Gbps) |
| 25 Rue Vincent Raspail 97110 Pointe-à-Pitre | 97120_0290_00025 | Radio 5GHz FWA Éligible (Outre-Mer DROM) |
