Calculateur TPS TVQ
Un prix hors taxe de 100 avec une TPS de 5 % et une TVQ de 9,975 % porte 5 de TPS et 9,98 de TVQ, pour un total de 114,98. Reportez les deux taxes et le total sur votre reçu ou votre soumission. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Prix
- 100
- Taux de GST
- 5
- Taux de la TVQ (QST)
- 9,975
- Total
- 114,98
- Montant de la GST
- 5
- Montant de la TVQ (QST)
- 9,98
- Impôt total
- 14,98
Les factures canadiennes au Québec séparent la taxe à la consommation en deux lignes : la taxe fédérale sur les produits et services (TPS, GST) et la taxe de vente du Québec (TVQ, QST). Ce calculateur TPS TVQ prend un prix hors taxe plus les deux taux applicables en points de pourcentage et renvoie chaque montant de taxe avec le total toutes taxes comprises. La TPS et la TVQ s'appliquent de façon indépendante sur la même contrepartie, selon la règle québécoise postérieure à 2013 et non l'ancienne méthode de taxe sur taxe.
Ce que signifient les montants de TPS et de TVQ sur une facture québécoise
La taxe sur les produits et services est le prélèvement fédéral à la consommation perçu sur la plupart des fournitures taxables au Canada ; la taxe de vente du Québec est la contrepartie provinciale perçue sur les fournitures taxables effectuées au Québec. Un calculateur TPS TVQ répond à la question d'encaissement au Québec : donné un prix hors taxe (la contrepartie) et les deux taux qui s'appliquent à cette fourniture, combien de TPS est due, combien de TVQ est due, et ce que le client paie après les deux taxes.
Depuis le 1er janvier 2013, la TPS et la TVQ se calculent de façon indépendante sur la même contrepartie hors taxe : la TVQ n'est pas perçue sur le montant déjà majoré de TPS. Les taux sont des points de pourcentage, non des fractions décimales : cinq signifie cinq pour cent de TPS ; neuf virgule neuf sept cinq signifie le taux actuel de TVQ de neuf virgule neuf sept cinq pour cent.
Un prix hors taxe de cent dollars à ces taux produit cinq dollars de TPS, neuf dollars et quatre-vingt-dix-huit cents de TVQ après l'arrondi half-up au centime de neuf virgule neuf sept cinq, et un total de cent quatorze dollars et quatre-vingt-dix-huit cents. Zéro est un prix valide (une ligne taxable de courtoisie signale encore une taxe nulle et un total nul).
Cet outil ne consulte pas les taux par code postal, n'applique pas les règles de lieu de fourniture GST/HST, ne décide pas si une fourniture est à taux zéro ou exonérée et ne convertit pas les devises. Vous fournissez la contrepartie et les deux taux déjà applicables ; le calculateur multiplie, arrondit chaque taxe half-up à deux décimales et additionne.
Où un calculateur TPS TVQ justifie son existence
Les commerçants et les comptables du Québec utilisent un calculateur TPS TVQ pour scinder une ligne de facture hors taxe en les deux montants de taxe qui figurent sur un reçu, un devis ou un journal des ventes, sans ouvrir un moteur fiscal complet. Un indépendant qui cote cent dollars plus TPS et TVQ a besoin du même découpage pour que le client voie TPS, TVQ et le total à payer comme lignes distinctes.
Les tests comptables épinglent un couple de taux de référence à côté du sous-total du panier afin qu'une bibliothèque d'encaissement ne bascule pas en silence vers l'arithmétique de taxe sur taxe. Les exercices de mathématiques du consommateur dans les provinces canadiennes qui combinent TPS et taxe de vente provinciale ont besoin d'un oracle déterministe qui refuse un prix négatif au lieu d'imprimer un remboursement.
C'est une recherche et un travail différents d'un calculateur générique de taxe de vente qui prend un seul pourcentage combiné, d'un convertisseur de TVA européenne de TTC vers HT, et d'un outil inverse de taxe de vente qui part d'un total toutes taxes comprises : ces pages répondent à d'autres requêtes avec d'autres entrées. Une validation échouée ne consomme pas le solde.
Cas d’usage
Figer l'arithmétique d'encaissement dans les tests comptables
Nourrissez un sous-total de panier et les deux taux en pourcent vers un oracle déterministe afin qu'une bibliothèque ne revienne pas en silence à la mathématique de taxe sur taxe.
Feuilles de mathématiques du consommateur au Canada
Les élèves calculent TPS et TVQ sur des prix d'exercice et comparent les lignes de taxe et les totaux écrits à la main avec un découpage de référence.
Questions fréquentes
Comment calcule-t-on la TPS et la TVQ à partir d'un prix hors taxe ?
Les deux taxes s'appliquent de façon indépendante sur la même contrepartie hors taxe (règle québécoise postérieure à 2013).
Que se passe-t-il si le prix hors taxe est négatif ?
Une contrepartie négative n'est pas un prix de vente TPS/TVQ que ce calculateur va taxer. Zéro est autorisé et produit une taxe nulle et un total nul.
La TVQ se calcule-t-elle par-dessus la TPS (taxe sur taxe) ?
Non. Depuis le 1er janvier 2013, le Québec calcule la TVQ sur le prix de vente hors TPS. Ce calculateur applique les deux taux de façon indépendante sur le prix hors taxe que vous envoyez.
Faut-il saisir 5 et 9,975 ou 0,05 et 0,09975 ?
Saisissez 5 et 9,975. Les taux s'entrent en points de pourcentage : 5 signifie 5 %. Avec 0,05, le calcul porte sur une infime fraction d'un pour cent et les taxes deviennent presque nulles.
Pourquoi la TVQ est-elle de 9,98 et non de 9,975 ?
Chaque taxe est arrondie au cent séparément, les demis vers le haut. 9,975 % de 100 donnent 9,975, soit 9,98 sur le reçu. La TPS est arrondie de la même façon avant que les deux soient ajoutées au prix.
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/fin/gst-qst \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price":100,"gst_rate":5,"qst_rate":9.975}'const res = await fetch("https://api.kit.forhosting.com/fin/gst-qst", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price": 100,
"gst_rate": 5,
"qst_rate": 9.975
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/gst-qst",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price": 100,
"gst_rate": 5,
"qst_rate": 9.975
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/gst-qst", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price":100,"gst_rate":5,"qst_rate":9.975}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price":100,"gst_rate":5,"qst_rate":9.975}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/gst-qst", 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
{
"price": 100,
"gst_rate": 5,
"qst_rate": 9.975
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.gst_qst",
"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. |
Notes techniques
Un prix hors taxe négatif échoue avec invalid_input et n'est pas facturé.
Ce que signifient les montants de TPS et de TVQ sur une facture québécoise
Les identités sont gst_amount égal à price fois gst_rate divisé par cent, qst_amount égal à price fois qst_rate divisé par cent, et total égal à price plus gst_amount plus qst_amount. Un prix hors taxe négatif est rejeté avec invalid_input parce qu'une contrepartie sous zéro n'est pas un prix de vente que ce calculateur va taxer.
Contrat d'entrée, forme de la réponse et conduite en cas d'erreur
TPS nulle, TVQ nulle et price zéro sont autorisés. Envoyez par POST un corps JSON avec trois nombres finis obligatoires qui partagent une monnaie. price est la contrepartie hors taxe et doit être supérieur ou égal à zéro ; les alias pre_tax, amount, subtotal et net pointent vers le même champ afin que la feuille conserve le nom de ses colonnes. gst_rate est le taux fédéral de TPS en points de pourcentage de zéro à cent ; les alias gst et gst_percent sont acceptés. qst_rate est le taux de la taxe de vente du Québec en points de pourcentage de zéro à cent ; les alias qst, qst_percent et tvq sont acceptés. Chaque champ numérique peut arriver comme nombre JSON ou comme chaîne numérique. Les champs manquants, les chaînes vides et les valeurs non finies —NaN, Infinity ou un texte qui ne s'interprète pas comme un nombre— échouent avec invalid_input en nommant le champ. Ces échecs ne sont pas facturés. Un price négatif échoue aussi avec invalid_input, car un prix de vente sous zéro n'est pas la question TPS/TVQ que ce calculateur tranche. Un gst_rate ou qst_rate négatif, et des taux au-dessus de cent pour cent, échouent de la même manière. Si la validation passe, le corps renvoie price, gst_rate et qst_rate, signale gst_amount et qst_amount comme les deux taxes arrondies half-up à deux décimales, total_tax comme leur somme, total comme le montant toutes taxes comprises, combined_rate comme gst_rate plus qst_rate, et une chaîne de formule qui réaffirme les identités indépendantes. Exemple : price cent, gst_rate cinq, qst_rate neuf virgule neuf sept cinq produit TPS cinq, TVQ neuf virgule neuf huit, taxe totale quatorze virgule neuf huit et total cent quatorze virgule neuf huit. Associez le JSON à votre propre règle sur les taux applicables —le cinq et le neuf virgule neuf sept cinq en vigueur, un couple historique ou une hypothèse de modélisation— car ce point d'accès multiplie les taux que vous envoyez ; il ne consulte pas les tables de Revenu Québec. Le tarif est un forfait de $0.002 par requête réussie.
Où un calculateur TPS TVQ justifie son existence
Comme l'implémentation est parse pure de palier A, chaque appel réussi coûte le tarif de base publié $0.002 sans jetons de modèle ni réseau sortant. Gardez price non négatif, les deux taux entre zéro et cent, figez dans les tests gst_amount, qst_amount et total arrondis, et vous obtenez un découpage québécois reproductible pour devis, greffons LMS et workers de bord sans monter une intégration propre avec l'ARC ou Revenu Québec.
Cas d'intégration
Chiffrer une facture québécoise avec lignes TPS et TVQ
Transformez une ligne hors taxe, le taux de TPS et le taux de TVQ en gst_amount, qst_amount et un total à payer pour un devis ou un reçu.
Questions techniques
Faut-il saisir 5 et 9.975, ou 0.05 et 0.09975 ?
Saisissez 5 et 9.975. gst_rate et qst_rate sont des points de pourcentage (5 signifie 5 %). combined_rate dans la réponse est leur somme (14.975 avec ces taux québécois en vigueur).
Combien coûte le calculateur TPS TVQ ?
L'outil du navigateur est gratuit. Les requêtes API utilisent le solde KIT prépayé à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.