Connectez Noltya sans contourner les permissions du CRM.
Une API HTTPS bornée au workspace de la clé, avec scopes minimaux, pagination, rate limit et idempotence pour les écritures sensibles.
https://api.noltya.fr/api/public-api/v1Démarrage en 3 étapes
Créer une clé
Nommez la connexion et cochez uniquement les scopes utiles.
Tester la connexion
Appelez /connection : aucun scope métier n’est nécessaire.
Brancher le premier flux
Conservez une clé d’idempotence stable pour chaque écriture.
curl "https://api.noltya.fr/api/public-api/v1/connection" \
-H "Authorization: Bearer nlt_live_…" \
-H "Accept: application/json"Authentification
Créez une clé dédiée depuis Connexions & automatisations → Clés API. Le secret complet n’est affiché qu’une fois. Le workspace et les scopes sont toujours dérivés de la clé côté serveur.
Authorization: Bearer nlt_live_…
Accept: application/jsonleads:readLire les leads
leads:writeCréer des leads
dossiers:readLire les dossiers
customers:readLire les clients
appointments:readLire les rendez-vous
quotes:readLire les devis et leurs lignes
invoices:readLire les factures et avoirs
payments:readLire les paiements et annulations
contacts:readAfficher les identités et coordonnées personnelles
documents:writeDéposer une pièce dans un dossier
cee:tariffs:writeSynchroniser une grille tarifaire CEE
Routes
/connectionValider la clé sans scope métier
/leadsLister les leads par curseur
/leads/:idLire un lead
/leadsCréer un lead de façon idempotente
/dossiersLister les dossiers par curseur
/dossiers/:idLire un dossier
/customersLister les clients par curseur
/customers/:idLire un client
/appointmentsLister les rendez-vous par curseur
/appointments/:idLire un rendez-vous
/quotesLister les devis par curseur
/quotes/:idLire un devis et ses lignes
/invoicesLister les factures par curseur
/invoices/:idLire une facture et ses lignes
/credit-notesLister les avoirs par curseur
/credit-notes/:idLire un avoir et ses lignes
/paymentsLister les paiements par curseur
/payments/:idLire un paiement
/dossiers/:dossierId/documentsDéposer un document contrôlé
/cee-partners/:organizationId/tariffsRemplacer une grille CEE versionnée
Pagination
Les listes acceptent une limite de 1 à 100. Réutilisez nextCursor tel quel jusqu’à ce qu’il soit nul.
GET /leads?limit=100&cursor=…
{
"data": [],
"nextCursor": null
}Idempotence
Les créations de lead, dépôts documentaires et synchronisations CEE exigent une clé ASCII stable de 8 à 200 caractères.
Idempotency-Key: source-record-12345Exemple : créer un lead
curl -X POST "https://api.noltya.fr/api/public-api/v1/leads" \
-H "Authorization: Bearer nlt_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: formulaire-78452" \
-d '{
"company": "Solaire Exemple",
"firstName": "Aline",
"lastName": "Martin",
"email": "aline@example.com",
"phone": "0600000000",
"source": "Partenaire"
}'Au moins une société, un contact, un prénom ou un nom est requis. Le scope contacts:read est nécessaire pour relire les identités, coordonnées, adresses, notes de rendez-vous, identités de facturation et références libres de paiement. Sans lui, ces champs sont omis des listes et détails.
Déposer un document
Envoyez un seul champ file en multipart. title, category, documentType et notes sont facultatifs.
curl -X POST "https://api.noltya.fr/api/public-api/v1/dossiers/DOSSIER_ID/documents" \
-H "Authorization: Bearer nlt_live_…" \
-H "Idempotency-Key: document-78452" \
-F "file=@attestation.pdf" \
-F "title=Attestation chantier"Synchroniser une grille CEE
Le partenaire doit déjà exister dans le workspace. Une grille vide ou une publication antérieure à la dernière version est refusée.
{
"version": "catalogue-2026-07-30.1",
"publishedAt": "2026-07-30T08:00:00.000Z",
"tariffs": [
{
"id": "bar-th-171-precaire",
"label": "BAR-TH-171 précaire",
"operationCode": "BAR-TH-171",
"householdCategory": "PRECARITE",
"pricePerMwhCumacCents": 850
}
]
}Documents, erreurs et limites
Le dépôt documentaire utilise multipart/form-data avec un seul champ file et un plafond de 10 Mo. Les fichiers suivent les contrôles antivirus et de doublon de Noltya; aucune information de stockage interne n’est exposée.
Les erreurs retournent un statut HTTP standard et un champ message. Une clé non autorisée répond 401, un scope absent 403, une réutilisation incompatible de clé d’idempotence 409, une validation invalide 400 et un dépassement de débit 429. Le débit par défaut est de 120 requêtes par minute et par clé.
{
"message": "La clé API ne possède pas le scope dossiers:read.",
"statusCode": 403
}