Calculateur de timbres
Ce calculateur de timbres recherche une combinaison pratique dont la valeur totale atteint ou dépasse l’affranchissement requis.
Lancer gratuitement
Indiquez le montant et une valeur de timbre pour obtenir rapidement un nombre, ou ajoutez d’autres valeurs si votre stock est varié. Le résultat présente le nombre de timbres, le montant couvert, tout excédent inévitable et le détail par valeur. Les calculs reposent sur des unités monétaires entières mises à l’échelle plutôt que sur des comparaisons flottantes approximatives, ce qui garantit des résultats déterministes adaptés aux expéditions et aux processus automatisés.
Saisissez l’affranchissement et les timbres disponibles
Commencez par le montant total indiqué par votre transporteur, votre service postal ou votre logiciel d’expédition. Saisissez ensuite la valeur du timbre principal que vous comptez utiliser. Si tous vos timbres ont la même valeur, ces deux données suffisent : le calculateur détermine le plus petit nombre dont le total couvre l’affranchissement requis. Si vous disposez de plusieurs valeurs, ajoutez-les comme valeurs supplémentaires. L’outil considère chaque valeur comme réutilisable et suppose donc un stock illimité de chaque timbre. Les montants peuvent comporter jusqu’à trois décimales afin de prendre en charge les monnaies et produits postaux plus précis que le centime. Utilisez la même monnaie pour le montant requis et les valeurs des timbres ; le calculateur traite des nombres, sans convertir les devises. Les doublons sont regroupés. Un montant requis nul renvoie zéro timbre, tandis que toute valeur de timbre doit être strictement positive, car une valeur nulle ou négative ne peut contribuer à une combinaison valable.
Comment la meilleure combinaison est retenue
Le premier objectif consiste à réduire au minimum l’excédent payé. Le calculateur recherche le plus petit total réalisable qui soit égal ou supérieur à l’affranchissement demandé. Une combinaison exacte est donc toujours préférée à une solution trop élevée, même si elle utilise davantage de timbres. Une fois le plus petit total payable trouvé, le second objectif consiste à l’obtenir avec le moins de timbres possible. Cet ordre correspond à la décision habituelle : éviter d’abord de gaspiller de l’affranchissement, puis réduire le nombre de timbres à manipuler et à coller. En interne, toutes les valeurs sont converties en nombres entiers mis à l’échelle avant l’évaluation des combinaisons. Ainsi, les montants à deux décimales sont traités comme des centièmes entiers. Cette méthode empêche les imprécisions binaires des nombres flottants de transformer une égalité monétaire en léger déficit apparent. La recherche est déterministe, bornée, sans accès réseau et fournit le même détail dans le navigateur et par l’API.
Interprétez le résultat et utilisez-le prudemment
Le résultat distingue quatre informations utiles. Le nombre de timbres correspond aux pièces physiques de la combinaison sélectionnée. L’affranchissement requis rappelle la cible normalisée afin de faciliter les comparaisons ultérieures. Le total d’affranchissement additionne les valeurs faciales recommandées, tandis que l’excédent représente la différence avec la cible. Le détail ne mentionne que les valeurs utilisées et leurs quantités. Avant l’envoi, vérifiez que le montant saisi correspond encore au tarif du transporteur et que chaque timbre convient au service, à la destination, à la catégorie et à la date concernés. Ce calculateur effectue uniquement l’opération arithmétique : il ne consulte pas les tarifs postaux en vigueur, ne contrôle pas les restrictions régionales, ne réserve pas l’affranchissement et n’imprime pas d’étiquette. Il suppose également un stock illimité. Si vos quantités sont limitées, ne saisissez que les valeurs disponibles en nombre suffisant, puis vérifiez le comptage physique. Les systèmes automatisés peuvent réutiliser cette réponse déterministe pour des consignes d’expédition à $0.002 par requête.
Cas d’usage
Préparer une enveloppe
Trouvez le plus petit nombre de timbres identiques couvrant une lettre et contrôlez l’excédent avant de les coller.
Combiner plusieurs valeurs
Associez les timbres d’une collection en privilégiant l’excédent d’affranchissement le plus faible.
Automatiser les consignes d’envoi
Transformez le tarif d’un transporteur en un détail reproductible pour l’expédition ou le service courrier.
Questions fréquentes
Combien coûte le calculateur ?
Vous pouvez l’utiliser gratuitement dans le navigateur. Chaque requête API coûte $0.002.
Que se passe-t-il si une valeur ne permet pas d’obtenir le montant exact ?
Le calculateur choisit le plus petit total réalisable au-dessus du besoin, puis réduit le nombre de timbres.
Puis-je combiner des timbres de valeurs différentes ?
Oui. Indiquez une valeur principale et ajoutez les autres valeurs disponibles dans additional_denominations.
Pourquoi toutes les valeurs doivent-elles être positives ?
Une valeur nulle ou négative ne fournit aucun affranchissement valable et empêche l’optimisation ; elle est donc refusée.
Le calculateur vérifie-t-il les tarifs postaux actuels ?
Non. Saisissez un montant obtenu auprès du transporteur ou du service postal ; cet outil calcule uniquement les combinaisons.
Tient-il compte d’un stock limité de timbres ?
Non. Chaque valeur indiquée est supposée disponible sans limite de quantité.
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/date/postage-stamp-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_postage":2.73,"denomination":0.68}'const res = await fetch("https://api.kit.forhosting.com/date/postage-stamp-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_postage": 2.73,
"denomination": 0.68
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/postage-stamp-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_postage": 2.73,
"denomination": 0.68
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/postage-stamp-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_postage":2.73,"denomination":0.68}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_postage":2.73,"denomination":0.68}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/postage-stamp-count", 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
{
"total_postage": 2.73,
"denomination": 0.68
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.postage_stamp_count",
"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.
Limites
max_amount | 100000 |
max_denominations | 20 |
max_decimal_places | 3 |
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. |