> For the complete documentation index, see [llms.txt](https://developer.esw.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.esw.com/api-reference/pricing-advisor-api/tax-and-duty-rates.md).

# Tax And Duty Rates

Tax and Duty Rates Controller V4

## POST bulk Tax and Duty rates for a set of tenant/country combinations.

> Returns the Default category rates for each requested tenant/country combination found in the data store.\
> Combinations with no data or no Default category are omitted from the response.\
> TenantIds is required. CountryCodes is optional — if null or empty, returns all countries for each tenant.

```json
{"openapi":"3.0.4","info":{"title":"Pricing Advisor API","version":"4.0"},"tags":[{"name":"TaxAndDutyRates","description":"Tax and Duty Rates Controller V4"}],"servers":[{"url":"https://pricing-advisor-api.sandbox.eshopworld.com"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Please insert JWT with Bearer into field","name":"Authorization","in":"header"}},"schemas":{"BulkTaxAndDutyRatesRequest":{"required":["tenantIds"],"type":"object","properties":{"tenantIds":{"type":"array","items":{"type":"string"},"description":"The list of tenant IDs to retrieve rates for. Required — must not be null."},"countryCodes":{"type":"array","items":{"type":"string"},"description":"The list of country ISO codes to filter by. Optional — if null or empty, all countries for each tenant are returned.","nullable":true}},"additionalProperties":false,"description":"Request body for the bulk Tax and Duty rates endpoint."},"TaxAndDutyRateResponse":{"type":"object","properties":{"tenantId":{"type":"string","description":"Gets the tenant identifier.","nullable":true,"readOnly":true},"countryIso":{"type":"string","description":"Gets the country ISO code.","nullable":true,"readOnly":true},"estimatedTax":{"type":"number","description":"Gets the estimated tax rate.","format":"double","nullable":true,"readOnly":true},"estimatedDuty":{"type":"number","description":"Gets the estimated duty rate.","format":"double","nullable":true,"readOnly":true},"estimatedFee":{"type":"number","description":"Gets the estimated fee rate.","format":"double","nullable":true,"readOnly":true},"shippingUpliftPercentage":{"type":"number","description":"Gets the shipping uplift percentage.","format":"double","nullable":true,"readOnly":true},"retailerAdjustment":{"type":"number","description":"Gets the retailer adjustment.","format":"double","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"A single entry in the bulk Tax and Duty rates response.\nContains the Default category rates for one tenant/country combination."},"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/4.0/TaxAndDutyRates/bulk":{"post":{"tags":["TaxAndDutyRates"],"summary":"POST bulk Tax and Duty rates for a set of tenant/country combinations.","description":"Returns the Default category rates for each requested tenant/country combination found in the data store.\nCombinations with no data or no Default category are omitted from the response.\nTenantIds is required. CountryCodes is optional — if null or empty, returns all countries for each tenant.","operationId":"GetBulk","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/BulkTaxAndDutyRatesRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/BulkTaxAndDutyRatesRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/BulkTaxAndDutyRatesRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/BulkTaxAndDutyRatesRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaxAndDutyRateResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaxAndDutyRateResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaxAndDutyRateResponse"}}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.esw.com/api-reference/pricing-advisor-api/tax-and-duty-rates.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
