public

POST /v1/public/pricing/tax-quote

What these net prices look like to a signed-out visitor, after VAT.

Tous les points de terminaison public

Authentification

Cet point de terminaison est public. Il ne nécessite aucun identifiant ni aucune organisation : c'est ce que notre propre site marketing et nos moteurs de réponse IA lisent.

Cet endpoint ne prend aucun identifiant d'organisation. Votre clé identifie déjà l'organisation à laquelle elle appartient, et la réponse y est limitée.

Essayer

Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.

curl -X POST https://api.zinndigital.com/v1/public/pricing/tax-quote \
  -H "Content-Type: application/json" \
  -d '{ "items": <object[]> }'

Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API

Détails

The anonymous half of `quoteTaxDisplay` (#1482). Same answer, one difference that matters: there is no organisation, so there is no validated VAT number and **every visitor is treated as a consumer**. ⛔ **This route accepts no buyer-validation flag, deliberately.** Reverse charge turns on a VIES-validated number and the seller carries the liability for granting it wrongly (`docs/34` §2.3), so a client-supplied validation claim would be a request to zero-rate a sale on the buyer's own say-so. Treating everyone as a consumer is also the safe direction: it over-states rather than under-states the tax due. Country comes from the request body or Cloudflare's `CF-IPCountry`. The answer is always `estimated: true` — a pricing page runs on a geo hint, and the charge is rated again at checkout against real place-of-supply evidence.

Corps de la requête

NomTypeObligatoireQu'est-ce que c'est
countrystringNonISO 3166-1 alpha-2 destination. On the signed-in route this overrides the stored billing country (the customer may be pricing an address they have not saved). Omitted on the pub…
currencystringNonISO 4217. Defaults to the `docs/29` §3.1 resolution for the request.
itemsobject[]Oui

Réponse

NomTypeObligatoireQu'est-ce que c'est
currencystringOui
countrystringOuiThe destination the figures were rated for, or `""` if none was known.
display_modestring<gross, net>OuiWhich figure leads. `gross` for a consumer (with the VAT shown separately), `net` for a validated business and for any supply carrying no VAT. ⛔ Read it; do not re-derive it — t…
noticestring<vat_included, reverse_charge, no_vat, vat_at_checkout>OuiA **key**, never rendered prose — every user-facing string goes through the frontend i18n layer in all 58 locales (§2.7, §2.19), so a wording change is a translation change rath…
rate_bpsintegerOuiThe single rate behind `notice`, or `0` where the basket carries more than one. A mixed basket (hosting at the buyer's rate, a website build at UK 20%) genuinely has no single r…
estimatedbooleanOuiThe figures ran on weak evidence (a geo hint, no billing address) and are indicative. The charge is rated again at checkout against full place-of-supply evidence, and **that** i…
indeterminatebooleanOuiThe supply could not be rated and the **net** figure is being shown with `notice: vat_at_checkout`. Never true alongside a non-zero `tax_total_minor`.
net_total_minorintegerOui
tax_total_minorintegerOui
gross_total_minorintegerOui⛔ Equal to net in the `indeterminate` fallback, **never 0** — a caller rendering this field unconditionally must show the price rather than a free product.
linesobject[]Oui

Erreurs que cet point de terminaison peut renvoyer

422 · 429