> 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/pricing-advisor-api/pricing-advisor-api/overview.md).

# Overview

The Pricing Advisor API is a robust tool designed to empower you with dynamic pricing data for various countries. It allows you to retrieve the pricing data for the delivery countries from the ESW system. You can use the retrieved data to calculate product prices in the shopper currency by applying our pricing formula. It provides essential information such as foreign exchange rates, estimated duties, taxes, and retailer adjustments, all crucial for setting competitive and accurate prices at checkout.

You can benefit from the API’s daily updated FX rates from trusted sources, ensuring they have the most current data for pricing decisions. The API also offers flexibility with rounding models, allowing you to control how you want to round prices for display.

This API is particularly beneficial as it helps you plan your pricing models to adapt to different markets, ensuring compliance with local tax and duty requirements, and ultimately, optimizing profit margins while maintaining competitive pricing. It’s a strategic asset for anyone looking to streamline their pricing strategy and expand their market reach with confidence.

### Versions <a href="#learn-more-about-the-pricing-advisor-api" id="learn-more-about-the-pricing-advisor-api"></a>

There are three available versions of the Pricing Advisor API.

All versions are broadly similar. The key differences are in response structure.

{% tabs %}
{% tab title="Pricing Advisor v4.0" %}
Use this version to get FX rates, estimated duties, estimated taxes, estimated fees, retailer adjustments, rounding models, and pricing models.
{% endtab %}

{% tab title="Pricing Advisor v3.0" %}
Use this version to perform the same tasks as v2.0, but with a different structure of the response.
{% endtab %}

{% tab title="Pricing Advisor v2.0" %}
Use this version to get the estimated duties and taxes, ESW FX rates, rounding rules, and country adjustments for the delivery countries for your brand.
{% endtab %}
{% endtabs %}

### Technical Differences In Pricing Advisor API Versions <a href="#technical-differences-in-pricing-advisor-api-versions" id="technical-differences-in-pricing-advisor-api-versions"></a>

Three versions of the Pricing Advisor API are available: v2.0, v3.0, and v4.0.

All versions are identical except for how the `currencyDisplays` and `roundingModels` objects are structured in the API response.

{% tabs %}
{% tab title="v2.0" %}

#### `currencyDisplays`

The `currencyDisplays` object in the response contains the pricing display configuration for each currency ISO.

For example:

{% code expandable="true" %}

```json
"currencyDisplays": [
  {
    "currencyIso": "string",
    "currencyExponent": 0,
    "currencySymbol": "string",
    "showTrailingZeros": true,
    "thousandSeparator": "string",
    "decimalSeparator": "string",
    "configurationString": "string"
  }
]
```

{% endcode %}

#### `roundingModels`

The `roundingModels` object contains the rounding configuration that applies to each currency.

Pricing Advisor API v2.0 supports the following rounding models:

* Fixed
* None

Pricing Advisor API v2.0 only supports rounding on the decimal number (the number to the right of the decimal point). It does not support rounding the whole number (the number to the left of the decimal point).

For example, if you want to round `41.35`, v2 can round `.35` and not `41`.
{% endtab %}

{% tab title="v3.0" %}

#### `currencyDisplays`

The `currencyDisplays` object in the response contains the pricing display configuration for each delivery country ISO.

For example:

```json
"deliveryCountryCurrencyDisplays": [
  {
    "deliveryCountryIso": "GB",
    "currencyDisplays": [
      {
        "currencyIso": "USD",
        "currencyExponent": 2,
        "currencySymbol": "€",
        "showTrailingZeros": true,
        "thousandSeparator": ",",
        "decimalSeparator": ".",
        "configurationString": "[Number][ExponentSeparator][Exponent] [CurrencyISO]"
      }
    ]
  }
]
```

#### `roundingModels`

The `roundingModels` object contains the rounding configuration that applies to each delivery country.

Pricing Advisor API v3.0 supports following rounding models:

* Fixed
* None
* Multiple
  {% endtab %}

{% tab title="v4.0" %}

#### `currencyDisplays`

The `currencyDisplays` object in the response contains the following:

{% code expandable="true" %}

```json
"currencyDisplays": [
  {
    "currencyIso": "AUD",
    "currencySymbol": "$",
    "currencyExponent": 2,
    "decimalSeparator": ".",
    "thousandSeparator": ",",
    "showTrailingZeros": true,
    "configurationString": "[Number][ExponentSeparator][Exponent] [CurrencyISO]"
  },
  {
    "currencyIso": "EUR",
    "currencySymbol": "€",
    "currencyExponent": 2,
    "decimalSeparator": ".",
    "thousandSeparator": ",",
    "showTrailingZeros": true,
    "configurationString": "[Number][ExponentSeparator][Exponent] [CurrencyISO]"
  }
]
```

{% endcode %}

#### `roundingModels`

The `roundingModels` object contains the rounding configuration that applies to each delivery country.

Pricing Advisor API v4.0 supports the following rounding models:

* Fixed
* None
* Multiple

The `model` value is split into two rules:

* The rule before the period applies to the whole number.
* The rule after the period applies to the decimal part.

For example, in `multiple50.fixed00`, `multiple50` rounds the whole number and `fixed00` sets the decimal part to `00`.

The decimal rule is applied first. The whole-number rule is applied second.

For example:

```json
"roundingConfigurations": [
  {
    "currencyIso": "AUD",
    "currencyExponent": 2,
    "direction": "Up",
    "model": "none.none"
  },
  {
    "currencyIso": "EUR",
    "currencyExponent": 2,
    "direction": "Up",
    "model": "none.fixed00"
  },
  {
    "currencyIso": "KWD",
    "currencyExponent": 3,
    "direction": "Up",
    "model": "multiple50.multiple50"
  }
]
```

The following examples show how each rounding rule works in v4.0:

| Rule       | What it does                                    | Example model           | Starting price | Direction | Result   |
| ---------- | ----------------------------------------------- | ----------------------- | -------------- | --------- | -------- |
| `fixed`    | Forces the value to end with a specific target. | `fixed100.fixed00`      | `98.50`        | `Up`      | `100.00` |
| `none`     | Leaves that part of the price unchanged.        | `none.none`             | `98.50`        | `Up`      | `98.50`  |
| `multiple` | Rounds to the nearest configured multiple.      | `multiple50.multiple50` | `98.26`        | `Up`      | `100.50` |

Common v4.0 combinations include:

| Model                   | Meaning                                                                      | Example       | Result   |
| ----------------------- | ---------------------------------------------------------------------------- | ------------- | -------- |
| `fixed100.fixed00`      | Round whole number to `100` and decimals to `00`.                            | `98.50`, `Up` | `100.00` |
| `fixed100.none`         | Round whole number to `100` and keep decimals unchanged.                     | `98.23`, `Up` | `100.23` |
| `none.fixed00`          | Keep the whole number and set decimals to `00`.                              | `98.50`, `Up` | `99.00`  |
| `none.multiple50`       | Keep the whole number and round decimals to the nearest multiple of `50`.    | `98.30`, `Up` | `98.50`  |
| `multiple50.fixed00`    | Round whole number to the nearest multiple of `50` and set decimals to `00`. | `98.50`, `Up` | `100.00` |
| `multiple50.multiple50` | Round both whole number and decimals to multiples of `50`.                   | `98.26`, `Up` | `100.50` |
| {% endtab %}            |                                                                              |               |          |
| {% endtabs %}           |                                                                              |               |          |


---

# 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/pricing-advisor-api/pricing-advisor-api/overview.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.
