Générez un reçu avec des totaux détaillés
Deux cappuccinos taxés à 8,25 % et un muffin exonéré deviennent un reçu détaillé, avec le sous-total de chaque ligne, la taxe totale et le montant payé déjà calculés. Contrairement à une facture, il atteste un paiement reçu. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Nom du commerçant
- Northwind Coffee
- Mode de paiement
- Visa ending 4242
- Devise
- USD
- Type de document
- receipt
- Numéro de reçu
- RCP-05M87BQ
Transformez les données d’un achat en reçu cohérent sans recréer les calculs et la mise en forme dans chaque application. Indiquez le commerçant, au moins un article et le moyen de paiement. Le générateur calcule les sous-totaux, les taxes et le total, puis attribue un numéro stable.
Préparez toutes les données du reçu
Saisissez le nom du commerçant tel qu’il doit apparaître, puis ajoutez séparément chaque produit ou service. Chaque ligne exige une description, une quantité et un prix unitaire. Les quantités décimales conviennent aux marchandises mesurées, aux heures, au poids ou à la distance.
Ajoutez un taux de taxe uniquement si nécessaire. Choisissez un moyen de paiement affichable, comme des espèces, un virement ou une carte masquée, sans jamais envoyer d’identifiants complets. La devise est facultative et vaut USD par défaut.
Des descriptions concises et des données protégées donnent un registre lisible. Au moins une ligne est indispensable, car un achat vide ne constitue pas un reçu valable.
Comprenez les calculs et le numéro
Le générateur convertit chaque prix en unités monétaires mineures avant de le multiplier par la quantité, ce qui évite les artefacts de virgule flottante. Chaque sous-total est arrondi, puis sa taxe est calculée. Le sous-total général additionne les lignes, la taxe totale additionne leurs taxes et le total final réunit les deux.
Le montant payé lui correspond toujours. Le numéro dérive des données normalisées : une requête identique renvoie donc le même identifiant, pratique pour les nouvelles tentatives et la détection des doublons. Il ne remplace toutefois aucune séquence fiscale officielle, autorisation administrative ou numérotation comptable obligatoire.
Intégrez le document structuré
La réponse sépare l’identité, le commerçant, les lignes calculées, le paiement et les totaux. Vous pouvez ainsi produire un reçu imprimable, archiver un achat normalisé, remplir un e-mail ou alimenter un générateur de PDF. Conservez la réponse avec la requête initiale afin de faciliter le rapprochement.
Le numéro stable constitue une référence utile, mais votre base doit appliquer ses propres règles. Les données incomplètes sont rejetées explicitement, sans invention silencieuse. Aucun réseau, stockage, date actuelle ni hasard n’intervient, ce qui assure des résultats reproductibles.
Cas d’usage
Créez un reçu de commande
Convertissez des articles et un paiement masqué en registre cohérent à conserver ou afficher.
Préparez les données d’un PDF
Calculez des lignes et totaux fiables avant la transmission à un moteur de rendu PDF.
Normalisez les ventes manuelles
Transformez les saisies de caisse ou de gestion en schéma prévisible pour le rapprochement et l’assistance.
Questions fréquentes
Puis-je créer un reçu sans article ?
Non. Une ligne au minimum est exigée ; une liste vide provoque une erreur de saisie.
Comment les taxes sont-elles calculées ?
Elles sont calculées par ligne sur son sous-total arrondi, puis additionnées.
Le numéro de reçu est-il aléatoire ?
Non. Il dérive des données normalisées ; des entrées identiques donnent le même numéro.
Ce reçu est-il une facture fiscale conforme ?
Non. Vous devez respecter vous-même les règles locales de numérotation et d’enregistrement.
Peut-on saisir une quantité avec des décimales ?
Oui. La quantité accepte les décimales, ce qui convient aux produits vendus au poids, aux heures de travail ou aux distances. Chaque ligne est multipliée puis arrondie à la plus petite unité de la devise avant la taxe.
Outils associés
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/doc/receipt-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"merchant_name":"Northwind Coffee","line_items":[{"description":"Cappuccino","quantity":2,"unit_price":4.5,"tax_rate":8.25},{"description":"Blueberry muffin","quantity":1,"unit_price":3.25}],"payment_method":"Visa ending 4242"}'const res = await fetch("https://api.kit.forhosting.com/doc/receipt-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"merchant_name": "Northwind Coffee",
"line_items": [
{
"description": "Cappuccino",
"quantity": 2,
"unit_price": 4.5,
"tax_rate": 8.25
},
{
"description": "Blueberry muffin",
"quantity": 1,
"unit_price": 3.25
}
],
"payment_method": "Visa ending 4242"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/receipt-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"merchant_name": "Northwind Coffee",
"line_items": [
{
"description": "Cappuccino",
"quantity": 2,
"unit_price": 4.5,
"tax_rate": 8.25
},
{
"description": "Blueberry muffin",
"quantity": 1,
"unit_price": 3.25
}
],
"payment_method": "Visa ending 4242"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/receipt-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"merchant_name":"Northwind Coffee","line_items":[{"description":"Cappuccino","quantity":2,"unit_price":4.5,"tax_rate":8.25},{"description":"Blueberry muffin","quantity":1,"unit_price":3.25}],"payment_method":"Visa ending 4242"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"merchant_name":"Northwind Coffee","line_items":[{"description":"Cappuccino","quantity":2,"unit_price":4.5,"tax_rate":8.25},{"description":"Blueberry muffin","quantity":1,"unit_price":3.25}],"payment_method":"Visa ending 4242"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/receipt-generate", 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
{
"merchant_name": "Northwind Coffee",
"line_items": [
{
"description": "Cappuccino",
"quantity": 2,
"unit_price": 4.5,
"tax_rate": 8.25
},
{
"description": "Blueberry muffin",
"quantity": 1,
"unit_price": 3.25
}
],
"payment_method": "Visa ending 4242"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.receipt_generate",
"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_mb | 25 |
max_pages | 200 |
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. |
Notes techniques
Le JSON obtenu peut être archivé, affiché, associé à une commande ou transmis à un autre flux documentaire.
Intégrez le document structuré
Chaque requête coûte $0.002 et convient aux petits flux transactionnels exigeant des données prévisibles.
Questions techniques
Quel est le prix ?
Chaque requête API coûte $0.002.