Documentation de l'API affiliés
L'API vous permet d'envoyer dans notre système les demandes collectées par vos propres formulaires. Chaque lead est attribué à votre compte, qualifié par nos conseillers puis payé s'il est validé, exactement comme avec nos formulaires prêts à l'emploi.
- Adresse de base
https://traitement-nuisible.com/espace-affiliation/api/v1- Authentification
- en-tête
X-Api-Key: VOTRE_CLE_API(clé disponible dans votre espace, rubrique Intégration > API) - Format
- JSON en UTF-8 (
Content-Type: application/json) - Limite
- 120 requêtes par minute
POST/leads : envoyer une demande
| Champ | Obligatoire | Description et valeurs |
|---|---|---|
thematique | oui | punaise-de-lit · deratisation |
prenom, nom | oui | Identité du demandeur |
telephone | oui | Numéro français à 10 chiffres (06…, 07…, 01… ; +33 accepté). Le demandeur est rappelé sur ce numéro. |
email | oui | Email du demandeur |
cp, ville | oui | Lieu de l'intervention (France) |
besoin | oui | Punaises de lit : Diagnostic · Traitement · Diagnostic et TraitementDératisation : Dératisation - Rats · Dératisation - Souris · Dératisation - Rats et souris · Dératisation - À identifier |
batiment | oui | Punaises de lit : Appartement · Maison individuelle · Hôtel · Local ProfessionnelDératisation : Appartement · Maison individuelle · Immeuble / parties communes · Local Professionnel |
surface | oui | Surface à traiter en m² (nombre entier) |
statut_occupant | oui | Punaises de lit : Locataire · Propriétaire · Syndic / GestionnaireDératisation : Locataire · Propriétaire · Syndic / Gestionnaire |
consentement | oui | true : le demandeur a coché « J'accepte que les partenaires certifiés me contactent pour me proposer leurs solutions. » |
details | non | Précisions libres (1 000 caractères max.) |
sous_id | non | Votre repère (site, campagne…), visible dans vos statistiques |
page | non | Adresse de la page où la demande a été faite |
ip_client | non | Adresse IP du demandeur (lutte contre la fraude) |
Exemple
curl -X POST https://traitement-nuisible.com/espace-affiliation/api/v1/leads \
-H "X-Api-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"thematique":"punaise-de-lit","prenom":"Marie","nom":"Dupont","telephone":"0612345678","email":"marie.dupont@exemple.fr","cp":"69003","ville":"Lyon","besoin":"Traitement","batiment":"Appartement","surface":45,"statut_occupant":"Locataire","details":"Piqûres depuis une semaine","consentement":true,"sous_id":"mon-formulaire"}'
Réponses
201 {"ok": true, "ref": "AF-7K3P9Q", "statut": "en_attente", "motif": null, "commission_si_valide": 20}
201 {"ok": true, "ref": "AF-M2X8RT", "statut": "refuse", "motif": "Doublon", "commission_si_valide": 20}
422 {"ok": false, "erreurs": {"telephone": "Numéro français à 10 chiffres"}}
401 {"ok": false, "erreur": "Clé API absente ou invalide (en-tête X-Api-Key)."}
429 {"ok": false, "erreur": "Trop de requêtes : 120 par minute maximum."}
Un même téléphone déjà reçu pour la même thématique depuis moins de 30 jours est enregistré comme doublon (non payé). Pour tester, mettez Test comme nom : le lead est enregistré avec le statut test mais n'est pas transmis.
GET/leads : vos leads et leurs statuts
Paramètres facultatifs : depuis=2026-10-01, jusqu_au=2026-10-31, statut=en_attente|valide|refuse, page=2 (100 par page).
{"ok": true, "total": 1, "page": 1, "par_page": 100, "leads": [
{"ref": "AF-7K3P9Q", "date": "2026-10-06 14:32:10", "thematique": "punaise-de-lit",
"prenom": "Mar…", "nom": "Dup…", "telephone": "•• •• •• 56 78", "departement": "69",
"canal": "api", "sous_id": "mon-formulaire", "statut": "valide", "motif": null,
"commission": 20, "commission_potentielle": 20, "definitif": false, "contestable_jusqu_au": "2026-11-10"}
]}
Comme dans votre espace, les coordonnées sont masquées.
GET/leads/{ref} : un lead
curl https://traitement-nuisible.com/espace-affiliation/api/v1/leads/AF-7K3P9Q -H "X-Api-Key: VOTRE_CLE_API"
GET/stats?mois=2026-10 : bilan d'un mois
{"ok": true, "mois": "2026-10", "leads": 12, "valides": 7, "en_attente": 3, "refuses": 2, "montant_ht": 140, "etat_paiement": "en_cours"}
GET/thematiques : valeurs acceptées et vos commissions
Statuts
en_attente | Reçu, en cours de qualification par téléphone (motif possible : « À rappeler »). |
valide | Lead réel, joignable et vendu : il est payé. Il peut encore être refusé jusqu'au 10 du mois suivant si un professionnel le conteste, puis il devient définitif. |
refuse | Non payé. Motifs : Fausses coordonnées, Injoignable, Doublon, Invendu, Hors zone, Renseignement seulement, Hors sujet, Test, Autre. |
Exemple PHP
$ch = curl_init('https://traitement-nuisible.com/espace-affiliation/api/v1/leads');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['X-Api-Key: VOTRE_CLE_API', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'thematique' => 'deratisation', 'prenom' => $_POST['prenom'], 'nom' => $_POST['nom'],
'telephone' => $_POST['tel'], 'email' => $_POST['email'], 'cp' => $_POST['cp'], 'ville' => $_POST['ville'],
'besoin' => 'Dératisation - Rats', 'batiment' => 'Maison individuelle', 'surface' => 100,
'statut_occupant' => 'Propriétaire', 'consentement' => true, 'ip_client' => $_SERVER['REMOTE_ADDR'],
]),
CURLOPT_RETURNTRANSFER => true,
]);
$res = json_decode(curl_exec($ch), true); // $res['ref'] = référence du lead
Exemple JavaScript (serveur Node.js)
const res = await fetch('https://traitement-nuisible.com/espace-affiliation/api/v1/leads', {
method: 'POST',
headers: { 'X-Api-Key': process.env.TN_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
"thematique": "punaise-de-lit",
"prenom": "Marie",
"nom": "Dupont",
"telephone": "0612345678",
"email": "marie.dupont@exemple.fr",
"cp": "69003",
"ville": "Lyon",
"besoin": "Traitement",
"batiment": "Appartement",
"surface": 45,
"statut_occupant": "Locataire",
"details": "Piqûres depuis une semaine",
"consentement": true,
"sous_id": "mon-formulaire"
})
});
const data = await res.json();
Règles
- Appelez l'API depuis votre serveur : votre clé ne doit jamais apparaître dans le code de vos pages.
- Le demandeur doit savoir qu'il sera rappelé et cocher l'accord de mise en relation (champ
consentement). - Indiquez sur votre formulaire que la demande est traitée par traitement-nuisible.com.
- Interdits : leads inventés ou achetés, incitations (cadeaux, concours), formulaires pré-remplis. Voir les conditions du programme.