Passer au contenu principal

Unités et devises

Un montant est un nombre JSON en unités majeures (euros, pas centimes) de la devise de sa ressource : currency d’une location, d’un devis ou d’un paiement, et pour le catalogue la devise de l’organisation (currency de GET /organization). Le nombre de décimales est l’exposant de la devise, currencyExponent de GET /organization :
  • Un montant envoyé hors de cette grille (120.5 en XOF, 19.999 en EUR) répond 400 avec le code de champ too_many_decimals. Un montant saisi doit aussi être strictement positif, sauf mention contraire.
  • Le serveur arrondit ses calculs à l’unité mineure la plus proche.
  • Exception : un tarif unitaire (overageRatePerKmHT) a jusqu’à 4 décimales, hors de la grille de la devise.
  • Calculez de votre côté en unités mineures entières (montant × 10^currencyExponent), pas en additionnant des nombres à virgule.

Suffixes HT et TTC

Les prix du catalogue (tarifs journaliers, options, forfaits) sont hors taxe. vatPercent est le taux appliqué, en pourcentage (20 pour 20 %).

Totaux d’une location ou d’un devis

  • totalHT + vatAmount = totalTTC, exactement.
  • lines détaille le prix : la somme des amountHT vaut totalHT, celle des amountTTC vaut totalTTC. Une remise est une ligne négative ; key dit quelle règle a produit la ligne, label n’est qu’un libellé.
  • La TVA est calculée sur l’ensemble puis répartie sur les lignes : lisez amountTTC, ne le recalculez pas ligne par ligne.
  • Sur une ligne OPTION, unitPriceHT et unitPriceTTC sont le prix d’un exemplaire pour toute la période ; quantity multiplie.
  • Les totaux font foi : sur de rares locations anciennes, la somme des lignes peut s’en écarter d’une unité mineure. Rapprochez sur totalHT et totalTTC.

Reste à payer

balance compare le dû aux encaissements, en TTC : Le amount d’un paiement est la somme réellement encaissée, dans la devise de la location. Un encaissement (PAYMENT) ne peut pas dépasser le reste à payer, prélèvement SEPA en cours déduit (422 PAYMENT_EXCEEDS_DUE).

Caution, franchise et kilométrage

  • Caution (deposit.depositAmount) : somme demandée en garantie, hors TVA, hors totalTTC et hors balance. Encaissement et restitution : voir Cycle de vie d’une location.
  • Franchise (deductible.excessAmount) : reste à la charge du client en cas de sinistre. Ce montant n’est jamais facturé. Le prix de la franchise choisie (son rachat) est la ligne DEDUCTIBLE de lines, comprise dans le total.
  • Kilométrage : mileage.includedKm est le nombre de kilomètres inclus pour toute la période, pas par jour ; null avec isUnlimited vrai. Au-delà, overageRatePerKmHT s’applique par kilomètre, hors taxe.

Exonération et autoliquidation

  • Un loueur exonéré de TVA (isVatExempt de GET /organization) facture à vatPercent 0.
  • Une location en autoliquidation (isVatReverseCharge vrai) est facturée sans TVA : vatAmount vaut 0 et totalTTC égale totalHT. La demande est refusée par 422 VAT_REVERSE_CHARGE_NOT_ALLOWED quand le loueur ne la propose pas (isVatReverseChargeAvailable faux) ou quand le client n’a pas de numéro de TVA ; reason précise le cas. Elle est réservée aux clés internes, sur le devis comme sur la location (400 not_applicable pour une clé partenaire).