billing

POST /v1/pricing/tax-quote

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

Dukkan billing wuraren ƙarshe

Dukan takardun mai haɓakawa

Tabbatar da Asali

Aiko da maɓallin API a matsayin bearer token. Wannan ma'anar ba ta bayyana takamaiman izini ba a cikin ƙayyadaddun bayanai, don haka ba wa maɓallin ku mafi ƙarancin abin da yake buƙata kuma ku bincika amsar maimakon yin zato.

Wannan wurin ƙarewa ba ya buƙatar ID na ƙungiya. Maɓallin ku ya riga ya gano ƙungiyar da yake ciki, kuma an iyakance amsa a kanta.

Gwada

May gurbin komai da ke cikin kusurwa da ƙimar ka, kuma may gurbin maballi da maballi daga allon sarrafa ka.

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

An shiga? Na'urar sarrafa API da ke cikin sashin kulawarka tana cika ainihin lambar ƙungiyarka da maɓallinka naka, sannan tana gudanar da buƙatar a kan ainihin API don haka zaka iya ganin amsar gaske. Buɗe wannan tashar a cikin na'urar kula da API

Bayani

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

Jikin buƙata

SunaNau'iAna buƙataAbin da yake
countrystringA'aISO 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…
currencystringA'aISO 4217. Defaults to the docs/29 §3.1 resolution for the request.
itemsobject[]Eh

Martani

SunaNau'iAna buƙataAbin da yake
currencystringEh
countrystringEhThe destination the figures were rated for, or "" if none was known.
display_modestring<gross, net>EhWhich 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>EhA 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_bpsintegerEhThe 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…
estimatedbooleanEhThe 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…
indeterminatebooleanEhThe 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_minorintegerEh
tax_total_minorintegerEh
gross_total_minorintegerEh⛔ 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[]Eh

Kuskuren da wannan matsaya za ta iya maido wa

401 · 422