Calcul des indemnités de voyage avec journées partielles
Ce calculateur transforme une indemnité journalière, une durée de déplacement et les pourcentages des jours de départ et de retour en un remboursement clair.
Lancer gratuitement
Il compte la durée en jours calendaires, indemnise intégralement chaque journée intermédiaire et applique séparément le prorata aux deux extrémités. Le résultat indique également le nombre effectif de jours indemnisables et chaque montant partiel, afin que vous puissiez le vérifier, l’expliquer ou le reporter dans une note de frais.
Saisissez l’indemnité et comptez les jours calendaires
Commencez par l’indemnité journalière applicable à la personne en déplacement, à la destination et à la période prévue par le barème. Le calculateur ne choisit pas à votre place un tarif administratif, employeur ou client : il emploie le montant que vous fournissez et conserve son contexte monétaire sans conversion. Indiquez le nombre total de jours calendaires du déplacement, en incluant les dates de départ et de retour. Un voyage qui commence le lundi et se termine le vendredi compte donc cinq jours, même si le départ a lieu tard le lundi ou le retour tôt le vendredi. Ces fractions de journée doivent être précisées dans les champs de pourcentage, et non retranchées du nombre de jours. Une durée entière rend la piste d’audit sans ambiguïté : toutes les journées intermédiaires sont complètes et seules les extrémités sont proratisées. Avant d’utiliser le résultat, vérifiez que l’indemnité et les pourcentages proviennent du même barème. Si le montant journalier est de 120 dans votre monnaie comptable, saisissez 120 sans symbole monétaire, séparateur de milliers, kilométrage, hébergement ni frais remboursés séparément.
Proratisez les jours de départ et de retour
Utilisez first_day_percent pour le jour du départ et last_day_percent pour celui du retour. La valeur 100 verse l’indemnité journalière complète, 75 en verse les trois quarts, 50 la moitié et 0 exclut l’extrémité concernée du remboursement. Le calculateur convertit chaque pourcentage en fraction de journée, ajoute toutes les journées intermédiaires complètes, puis multiplie le total des jours indemnisables par le montant journalier. Par exemple, un déplacement de cinq jours assorti de 75 pour cent aux deux extrémités comprend trois journées complètes, plus 0.75 et 0.75, soit 4.5 jours indemnisables. Les deux pourcentages sont indépendants, car de nombreux barèmes traitent différemment le départ et le retour. Un déplacement d’une journée constitue un cas particulier : la même date est à la fois le premier et le dernier jour. Les pourcentages doivent donc être identiques et la fraction n’est comptée qu’une fois. Cette règle évite un double remboursement involontaire. Les pourcentages doivent rester compris entre 0 et 100, et la durée doit être un entier de 1 à 10,000 jours.
Vérifiez le détail avant de soumettre la demande
Le résultat reprend l’indemnité et la durée saisies, les pourcentages appliqués aux deux extrémités, le nombre de journées intermédiaires complètes, les jours effectivement indemnisables, les montants du premier et du dernier jour ainsi que le remboursement final. Ce détail permet à la personne chargée de l’approbation de reproduire le total sans deviner la convention retenue. Pour un déplacement de plusieurs jours, la formule additionne la fraction du premier jour, toutes les journées intermédiaires complètes et la fraction du dernier jour, puis multiplie l’ensemble par l’indemnité journalière. Pour une seule journée, la fraction identique n’est appliquée qu’une fois. L’arrondi sert uniquement à supprimer le bruit de calcul en virgule flottante ; il ne force pas deux décimales, car les monnaies et règles comptables internes peuvent imposer une autre précision. Appliquez ensuite l’arrondi monétaire exigé par votre organisation. Le calcul porte uniquement sur l’indemnité : il n’ajoute ni hébergement, ni transport, ni kilométrage, ni taxes, ni change, ni déduction de repas, ni barème propre à une destination. Le calcul dans le navigateur est gratuit et chaque requête API automatisée coûte $0.002.
Cas d’usage
Préparer une note de frais
Calculez la part d’indemnité du déplacement et conservez un détail transparent pour la personne salariée et l’approbateur.
Contrôler un remboursement de voyage
Reproduisez un total soumis avec le montant journalier déclaré et les pourcentages de départ et de retour du barème.
Automatiser les frais de déplacement
Utilisez l’API pour appliquer uniformément les montants et pourcentages connus aux voyages prévus ou terminés.
Questions fréquentes
Combien coûte le calculateur ?
Son utilisation dans le navigateur est gratuite. Chaque requête API coûte $0.002.
Le décompte inclut-il le départ et le retour ?
Oui. Indiquez tous les jours calendaires du départ au retour, en incluant ces deux dates.
Comment les journées partielles sont-elles calculées ?
Chaque pourcentage d’extrémité est divisé par 100 puis multiplié par l’indemnité journalière. Les journées intermédiaires sont indemnisées intégralement.
Comment traiter un déplacement d’une seule journée ?
Le premier et le dernier jour étant la même date, leurs pourcentages doivent être identiques et cette fraction n’est comptée qu’une fois.
Le calculateur choisit-il un barème officiel ?
Non. Saisissez l’indemnité exigée par votre employeur, votre client, votre contrat ou le barème applicable.
Le résultat inclut-il l’hébergement, le kilométrage ou le change ?
Non. Il calcule uniquement l’indemnité à partir des valeurs saisies, sans ajouter d’autres frais ni convertir de monnaie.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/travel/per-diem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"daily_allowance":120,"travel_days":5}'const res = await fetch("https://api.kit.forhosting.com/travel/per-diem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"daily_allowance": 120,
"travel_days": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/per-diem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"daily_allowance": 120,
"travel_days": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/per-diem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"daily_allowance":120,"travel_days":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"daily_allowance":120,"travel_days":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/per-diem", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"daily_allowance": 120,
"travel_days": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.per_diem",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |