billing
POST /v1/pricing/tax-quote
What these net prices look like to this customer, after VAT.
ప్రమాణీకరణ
ఒక API కీని బేరర్ టోకెన్గా పంపండి. ఈ ఎండ్పాయింట్ స్పెసిఫికేషన్లో నిర్దిష్ట అనుమతిని పేర్కొనలేదు, కాబట్టి ఊహించడం కంటే మీ కీకి అవసరమైన కనిష్ట అనుమతిని ఇవ్వండి మరియు ప్రతిస్పందనను తనిఖీ చేయండి.
ఈ ఎండ్పాయింట్ ఎలాంటి సంస్థ ఐడీని తీసుకోదు. మీ కీ ఇప్పటికే అది ఏ సంస్థకు చెందుతుందో గుర్తిస్తుంది మరియు ప్రతిస్పందన దానికే పరిమితం చేయబడుతుంది.
ప్రయత్నించండి
కోణీయ బ్రాకెట్లలో ఉన్న దేన్నైనా మీ స్వంత విలువలతో భర్తీ చేయండి, మరియు కీ ప్లేస్హోల్డర్ను మీ డాష్బోర్డ్ నుండి తీసుకున్న కీతో భర్తీ చేయండి.
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 కాన్సోల్ మీ అసలైన సంస్థ ID మరియు మీ స్వంత కీని నింపుతుంది, అలాగే మీరు అసలైన ప్రతిస్పందనను చూడటానికి లైవ్ API ద్వారా ఆభ్యర్థనను రన్ చేస్తుంది. ఈ ఎండ్పాయింట్ను 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.
అభ్యర్థన బాడీ
| పేరు | రకం | కావలసినది | ఇది ఏమిటి |
|---|---|---|---|
country | string | కాదు | 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 pub… |
currency | string | కాదు | ISO 4217. Defaults to the `docs/29` §3.1 resolution for the request. |
items | object[] | అవును | — |
స్పందన
| పేరు | రకం | కావలసినది | ఇది ఏమిటి |
|---|---|---|---|
currency | string | అవును | — |
country | string | అవును | The destination the figures were rated for, or `""` if none was known. |
display_mode | string<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 — t… |
notice | string<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 rath… |
rate_bps | integer | అవును | 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 r… |
estimated | boolean | అవును | 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** i… |
indeterminate | boolean | అవును | 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 | అవును | — |
tax_total_minor | integer | అవును | — |
gross_total_minor | integer | అవును | ⛔ 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[] | అవును | — |
ఈ ఎండ్పాయింట్ తిరిగి ఇవ్వగల లోపాలు
401 · 422