billing

POST /v1/pricing/tax-quote

What these net prices look like to this customer, after VAT.

Всички крайни точки в billing

Всички документи за разработчици

Упълномощаване

Изпратете API ключ като носител (bearer token). Тази точка за достъп не указва конкретно разрешение в спецификацията, затова дайте на ключа си най-малкото необходимо и проверете отговора, вместо да правите предположения.

Този ендпойнт не изисква идентификатор на организация. Вашият ключ вече идентифицира организацията, към която принадлежи, и отговорът е ограничен до нея.

Опитайте

Заменете всичко в квадратни скоби със собствени стойности, а ключовия заместващ символ – с ключ от вашето табло за управление.

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

Влязохте ли в профила си? API конзолата във вашето табло за управление попълва действителното идентификационно число на вашата организация и вашия собствен ключ и изпълнява заявката спрямо реалното API, за да можете да видите действителния отговор. Отворете този крайpoint в API конзолата

Детайли

⚖️ 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.

Тяло на заявката

ИмеТипЗадължителноКакво представлява
countrystringНе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…
currencystringНеISO 4217. Defaults to the docs/29 §3.1 resolution for the request.
itemsobject[]Да

Отговор

ИмеТипЗадължителноКакво представлява
currencystringДа
countrystringДаThe destination the figures were rated for, or "" if none was known.
display_modestring<gross, net>Да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…
noticestring<vat_included, reverse_charge, no_vat, vat_at_checkout>Да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_bpsintegerДа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…
estimatedbooleanДа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…
indeterminatebooleanДа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_minorintegerДа
tax_total_minorintegerДа
gross_total_minorintegerДа⛔ 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[]Да

Грешки, които този крайpoint може да върне

401 · 422