billing
POST /v1/pricing/tax-quote
What these net prices look like to this customer, after VAT.
Hitelesítés
Küldjön egy API-kulcsot bearer tokenként. Ez a végpont nem határoz meg konkrét jogosultságot a specifikációban, ezért adja meg a kulcsnak a legkevesebbet, amire szüksége van, és a feltételezés helyett ellenőrizze a választ.
Ez a végpont nem fogad el szervezeti azonosítót. Az Ön kulcsa már azonosítja azt a szervezetet, amelyhez tartozik, és a válasz is erre vonatkozik.
Próbálja ki
Cserélje ki a hegyes zárójelek közötti részt a saját értékeivel, a kulcshelyőrzőt pedig a vezérlőpultján található kulccsal.
curl -X POST https://api.zinndigital.com/v1/pricing/tax-quote \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "items": <object[]> }'Be van jelentkezve? A vezérlőpultban lévő API-konzol kitölti a valós szervezetazonosítóját és a saját kulcsát, és a kérést az éles API-n futtatja, hogy láthassa a tényleges választ. Nyissa meg ezt a végpontot az API konzolban
Részletek
⚖️ Net-constant pricing (owner ruling 2026-08-04, docs/34 §2.1a ruling 3, #1482). The advertised figure is net and VAT is added on top at the destination rate, so our revenue per sale is identical everywhere: a €10 plan nets €10 whether the buyer is in Germany or Hungary, and their total differs (€11.90, €12.70) because their own rate does. A consumer is shown the VAT-inclusive figure; a business with a VIES-validated VAT number is shown net. display_mode says which — read it, never derive it. The discriminator is validation state, not "has typed a VAT number": an unvalidated number is charged VAT (§2.3), so treating it as a business would understate what the customer pays. ⛔ This endpoint rates; it never prices. The caller passes amounts it already holds from the catalogue, so this cannot become a second source of prices that drifts from the first. ⭐ Both figures always come back, whichever one leads, so a frontend picks a field rather than multiplying by a rate. A rate applied in TypeScript is a float applied to money (§2.8) and a second implementation of the tax rules — one rounding rule away from the invoice, for ever. ⛔ indeterminate: true means the supply could not be rated (usually a member state with no TaxRate row) and the net figure is being returned with notice: vat_at_checkout. It is not an error to surface: the charge path refuses in that situation, correctly, but a pricing page that refused would go blank for a whole country. In the fallback gross_total_minor equals net and is never 0, so a caller rendering the gross field unconditionally shows the price rather than a free product.
Kérés törzse
| Név | Típus | Kötelező | Mi ez |
|---|---|---|---|
country | string | Nem | ISO 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… |
currency | string | Nem | ISO 4217. Defaults to the docs/29 §3.1 resolution for the request. |
items | object[] | Igen | — |
Válasz
| Név | Típus | Kötelező | Mi ez |
|---|---|---|---|
currency | string | Igen | — |
country | string | Igen | The destination the figures were rated for, or "" if none was known. |
display_mode | string<gross, net> | Igen | Which 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 — the… |
notice | string<vat_included, reverse_charge, no_vat, vat_at_checkout> | Igen | A 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 rather… |
rate_bps | integer | Igen | The 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… |
estimated | boolean | Igen | The 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 is… |
indeterminate | boolean | Igen | The 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_minor | integer | Igen | — |
tax_total_minor | integer | Igen | — |
gross_total_minor | integer | Igen | ⛔ Equal to net in the indeterminate fallback, never 0 — a caller rendering this field unconditionally must show the price rather than a free product. |
lines | object[] | Igen | — |
Hibák, amelyeket ez a végpont visszaadhattatlan
401 · 422