Accueil
POST/api/v1/outils-ia/note-de-frais

API Note de frais (PDF)

Génère une note de frais au format PDF, ou son détail calculé en JSON : TVA et montant HT de chaque dépense, indemnités kilométriques au barème fiscal 2026, avances et net à rembourser.

Présentation

Cet endpoint produit la même note de frais que le générateur en ligne du site : vous envoyez l'entreprise, le bénéficiaire, le mois concerné, les dépenses et les trajets, l'API renvoie un PDF A4 prêt à signer, ou les montants calculés en JSON pour les intégrer à votre logiciel.

Pour chaque dépense, la TVA est déduite du montant TTC selon le taux indiqué (20, 10, 5,5, 2,1 ou 0 %), puis le HT en est déduit, au centime près. Les indemnités kilométriques suivent le barème kilométrique 2026 de l'administration fiscale (revenus 2025, montants de l'arrêté du 27 mars 2023), selon le type de véhicule et sa puissance fiscale, avec une majoration de 20 % pour les véhicules électriques. Sans km_annuels, le taux de la première tranche s'applique ; avec, le taux moyen de la tranche correspondante. Le net à rembourser vaut le total TTC des frais plus les indemnités, moins les avances. Aucune donnée n'est conservée après la réponse.

Pour générer automatiquement les notes de frais mensuelles depuis un outil de saisie des dépenses, un logiciel de paie ou un tableur, ou pour contrôler des montants d'indemnités kilométriques. Pour un usage ponctuel, le générateur en ligne fait la même chose sans jeton : https://www.websource.fr/modele-note-de-frais (exemple rempli et modèle vierge à télécharger).

Sans jeton ni code : Modèle de note de frais en ligne.

Utilisation pas à pas

  1. 1Renseignez entreprise.nom, beneficiaire.nom et la periode (mois au format AAAA-MM).
  2. 2Ajoutez une ligne par dépense dans frais (date, categorie, description, montant_ttc, taux_tva) et une ligne par trajet dans indemnites_km (date, trajet, km, vehicule, puissance_cv).
  3. 3Indiquez si besoin km_annuels (kilométrage professionnel annuel, pour la tranche du barème) et avances (sommes déjà versées).
  4. 4Gardez format à 'pdf' pour recevoir le fichier (enregistrez la réponse binaire), ou passez-le à 'json' pour obtenir les montants calculés.
  5. 5Imprimez ou transmettez le PDF, faites-le signer et joignez les justificatifs.

Limites à connaître

  • Au moins une ligne de frais ou d'indemnités kilométriques ; 100 lignes au maximum dans chacun des deux tableaux.
  • Montants de 0 à 1 000 000 €, distances de 0 à 100 000 km par ligne ; textes de 140 caractères au plus (description, trajet).
  • Dates au format AAAA-MM-JJ. Corps obligatoirement en JSON (Content-Type: application/json).
  • Pas de logo dans le PDF généré par l'API (version 1) : utilisez le générateur en ligne pour un PDF avec logo.
  • Le barème est appliqué tel quel : vérifiez les règles propres à votre entreprise (forfaits, plafonds) avec votre expert-comptable.

Endpoint et authentification

POSThttps://www.websource.fr/api/v1/outils-ia/note-de-frais

Chaque requête porte votre jeton dans l'en-tête Authorization, et le corps est envoyé en JSON (Content-Type: application/json). Le jeton est gratuit, sur demande depuis votre compte (formulaire en bas de page).

Authorization: Bearer VOTRE_JETON

Paramètres du corps (JSON)

ParamètreTypeRequisDescription
entreprise.nomstringRequisRaison sociale (80 caractères max).
entreprise.siretstringOptionnelSIRET, affiché tel quel (20 caractères max).
entreprise.adressestringOptionnelAdresse de l'entreprise (140 caractères max).
beneficiaire.nomstringRequisSalarié ou dirigeant remboursé (80 caractères max).
beneficiaire.postestringOptionnelPoste ou service (80 caractères max).
periodestringRequisMois concerné, au format AAAA-MM (ex. 2026-09).
motifstringOptionnelMotif ou mission (160 caractères max).
frais[]array<object>OptionnelDépenses, 100 lignes max : date (AAAA-MM-JJ), categorie, description, montant_ttc, taux_tva (optionnel), justificatif (optionnel, n° de pièce).
frais[].categoriestringRequis'transport', 'train', 'taxi', 'carburant', 'peage', 'repas', 'hebergement', 'fournitures', 'telecom' ou 'autre'.
frais[].taux_tvanumberOptionnel20, 10, 5.5, 2.1 ou 0. Par défaut selon la catégorie (0 pour transport, train, taxi et hébergement, 10 pour repas, 20 sinon).
indemnites_km[]array<object>OptionnelTrajets en véhicule personnel, 100 lignes max : date, trajet, km, vehicule, puissance_cv, electrique.
indemnites_km[].vehiculestringOptionnel'voiture' (défaut), 'moto' ou 'cyclomoteur' (50 cm³ et moins).
indemnites_km[].puissance_cvintRequisPuissance fiscale en CV (carte grise). Voiture : 3 et moins à 7 et plus ; moto : 1-2, 3-5, plus de 5. Ignorée pour un cyclomoteur.
indemnites_km[].electriqueboolOptionneltrue pour un véhicule électrique (+20 %). Défaut false.
km_annuelsnumberOptionnelKilométrage professionnel annuel du véhicule, pour choisir la tranche du barème. Absent : première tranche.
avancesnumberOptionnelAvances déjà perçues, déduites du net à rembourser. Défaut 0.
formatstringOptionnel'pdf' (défaut) : fichier application/pdf ; 'json' : montants calculés.

Exemples de code

Le même appel en plusieurs langages. Remplacez VOTRE_JETON par le jeton reçu par e-mail et gardez-le côté serveur (variable d'environnement), jamais dans un dépôt public.

curl -X POST https://www.websource.fr/api/v1/outils-ia/note-de-frais \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{"entreprise":{"nom":"Atelier Durand SARL","siret":"123 456 789 00012","adresse":"12 rue des Lilas, 69003 Lyon"},"beneficiaire":{"nom":"Camille Martin","poste":"Chargée de clientèle"},"periode":"2026-09","motif":"Salon professionnel à Paris","frais":[{"date":"2026-09-08","categorie":"train","description":"Billet TGV Lyon - Paris aller-retour","montant_ttc":118.4,"taux_tva":0,"justificatif":"J01"},{"date":"2026-09-08","categorie":"repas","description":"Déjeuner avec un client","montant_ttc":64.8,"taux_tva":10,"justificatif":"J02"}],"indemnites_km":[{"date":"2026-09-15","trajet":"Lyon - Chambéry aller-retour","km":214,"puissance_cv":5,"vehicule":"voiture"}],"avances":150,"format":"pdf"}' \
  --fail-with-body -o note-de-frais.pdf

Réponses

Avec format = 'pdf' (par défaut), la réponse est le fichier lui-même : Content-Type: application/pdf et Content-Disposition: attachment; filename="note-de-frais-camille-martin-2026-09.pdf". Enregistrez le corps binaire tel quel, comme dans les exemples de code. Avec format = 'json', la réponse détaille les montants calculés :

{
  "success": true,
  "entreprise": { "nom": "Atelier Durand SARL", "siret": "123 456 789 00012", "adresse": "12 rue des Lilas, 69003 Lyon" },
  "beneficiaire": { "nom": "Camille Martin", "poste": "Chargée de clientèle" },
  "periode": { "mois": "2026-09", "du": "2026-09-01", "au": "2026-09-30" },
  "motif": "Salon professionnel à Paris",
  "frais": [
    { "date": "2026-09-08", "categorie": "train", "categorie_libelle": "Train / avion", "description": "Billet TGV Lyon - Paris aller-retour", "justificatif": "J01", "montant_ttc": 118.4, "taux_tva": 0, "montant_tva": 0, "montant_ht": 118.4 },
    { "date": "2026-09-08", "categorie": "repas", "categorie_libelle": "Repas", "description": "Déjeuner avec un client", "justificatif": "J02", "montant_ttc": 64.8, "taux_tva": 10, "montant_tva": 5.89, "montant_ht": 58.91 }
  ],
  "indemnites_km": [
    { "date": "2026-09-15", "trajet": "Lyon - Chambéry aller-retour", "vehicule": "voiture", "puissance": "5 CV", "electrique": false, "km": 214, "taux_km": 0.636, "montant": 136.1 }
  ],
  "bareme_km": { "annee": 2026, "revenus": 2025, "source": "Arrêté du 27 mars 2023, barème 2026 (revenus 2025)", "km_annuels": null },
  "totaux": {
    "total_ht": 177.31,
    "total_tva": 5.89,
    "total_ttc": 183.2,
    "total_km": 214,
    "indemnites_km": 136.1,
    "total_a_rembourser": 319.3,
    "avances": 150,
    "net_a_rembourser": 169.3,
    "justificatifs": 2
  },
  "fichier": "note-de-frais-camille-martin-2026-09.pdf"
}
CodeSignificationQue faire
400Paramètre manquant ou invalideLisez le champ error, il précise la limite dépassée.
401Jeton absent, invalide ou révoquéVérifiez l'en-tête Authorization.
429Limite horaire atteinteAttendez l'échéance indiquée dans Retry-After.
503Service momentanément indisponibleRéessayez après quelques instants.

Toute erreur a la forme {"success": false, "error": "…"}. Limite par défaut : 60 requêtes par heure et par jeton (ajustable sur demande).

Demander un accès API

Gratuit. Un jeton vous est envoyé par e-mail une fois la demande approuvée. Il donne accès à tous les outils de cette API.

Pour demander un accès, connectez-vous ou créez un compte gratuit. Vous reviendrez ensuite directement sur ce formulaire.