Traitement NuisibleAffiliationtraitement-nuisible.com

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

ChampObligatoireDescription et valeurs
thematiqueouipunaise-de-lit · deratisation
prenom, nomouiIdentité du demandeur
telephoneouiNuméro français à 10 chiffres (06…, 07…, 01… ; +33 accepté). Le demandeur est rappelé sur ce numéro.
emailouiEmail du demandeur
cp, villeouiLieu de l'intervention (France)
besoinouiPunaises de lit : Diagnostic · Traitement · Diagnostic et Traitement
Dératisation : Dératisation - Rats · Dératisation - Souris · Dératisation - Rats et souris · Dératisation - À identifier
batimentouiPunaises de lit : Appartement · Maison individuelle · Hôtel · Local Professionnel
Dératisation : Appartement · Maison individuelle · Immeuble / parties communes · Local Professionnel
surfaceouiSurface à traiter en m² (nombre entier)
statut_occupantouiPunaises de lit : Locataire · Propriétaire · Syndic / Gestionnaire
Dératisation : Locataire · Propriétaire · Syndic / Gestionnaire
consentementouitrue : le demandeur a coché « J'accepte que les partenaires certifiés me contactent pour me proposer leurs solutions. »
detailsnonPrécisions libres (1 000 caractères max.)
sous_idnonVotre repère (site, campagne…), visible dans vos statistiques
pagenonAdresse de la page où la demande a été faite
ip_clientnonAdresse 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_attenteReçu, en cours de qualification par téléphone (motif possible : « À rappeler »).
valideLead 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.
refuseNon 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