> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appcharge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Price Point

> Creates a price point from a base price in USD cents.

When you pass the base price, Appcharge generates and returns localized prices for that price point in every supported currency. Learn more about [how localized prices are calculated](./introduction#how-localized-prices-are-calculated).

To override automatically calculated prices for specific countries, pass the `priceOverrides` property with the relevant country codes and your custom prices.


<RequestExample>
  ```bash Create Price Point theme={"system"}
    curl -X POST \
    'https://api.appcharge.com/v1/price-points' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'x-publisher-token: <x-publisher-token>' \
    -d '{
      "priceInUsdCents": 999,
      "priceOverrides": [
        {
          "countryCode2": "BR",
          "price": 29.99
        }
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Create Price Point theme={"system"}
  {
    "priceInUsdCents": 999,
    "lastUpdate": "2026-03-01T10:00:00.000Z",
    "priceByCountry": [
      {
        "price": 9.99,
        "currencyCode": "USD",
        "isOverridden": false,
        "taxModel": "Excluded",
        "taxRate": 0,
        "country": "United States",
        "countryCode2": "US",
        "usdExchangeRateOnCalc": 1,
        "exchangeRateDrift": "0%"
      },
      {
        "price": 7.99,
        "currencyCode": "GBP",
        "isOverridden": false,
        "taxModel": "Included",
        "taxRate": 20,
        "country": "United Kingdom",
        "countryCode2": "GB",
        "usdExchangeRateOnCalc": 0.79,
        "exchangeRateDrift": "-1.2%"
      },
      {
        "price": 29.99,
        "currencyCode": "BRL",
        "isOverridden": true,
        "taxModel": "Excluded",
        "taxRate": 0,
        "country": "Brazil",
        "countryCode2": "BR",
        "usdExchangeRateOnCalc": 5.05,
        "exchangeRateDrift": "2.3%"
      },
      {
        "price": 8.99,
        "currencyCode": "EUR",
        "isOverridden": false,
        "taxModel": "Included",
        "taxRate": 19,
        "country": "Germany",
        "countryCode2": "DE",
        "usdExchangeRateOnCalc": 0.92,
        "exchangeRateDrift": "-0.5%"
      }
    ]
  }
  ```

  ```json 400 Schema Validation Error theme={"system"}
  {
    "message": "Invalid request body."
  }
  ```

  ```json 400 Invalid Country Code theme={"system"}
  {
    "message": "Country code ZZ not found in existing custom pricing."
  }
  ```

  ```json 409 theme={"system"}
  {
    "message": "Cannot create new pricing. The price point already exists."
  }
  ```
</ResponseExample>


## OpenAPI

````yaml openapi-price-points.json post /v1/price-points
openapi: 3.1.0
info:
  title: Price Localization API
  description: API for managing price points and price localization
  version: 1.0.0
servers:
  - url: https://api.example.com
security: []
paths:
  /v1/price-points:
    post:
      summary: Create a Price Point
      description: >-
        Creates a price point.


        When you pass the base price in USD, the API returns localized prices
        for this price point in all currencies supported by Appcharge. Learn
        more about [how localized prices are
        calculated](./introduction#how-localized-prices-are-calculated).


        To override automatically calculated prices for specific countries, pass
        the `priceOverrides` property with the relevant country codes and your
        custom prices.
      operationId: createPricePoint
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                priceInUsdCents:
                  type: number
                  description: Base price in USD cents.
                  example: 999
                priceOverrides:
                  type: array
                  items:
                    $ref: '#/components/schemas/PriceOverride'
                  description: >-
                    List of country-specific prices that replace the
                    auto-calculated price.


                    Exchange rates and rounding rules aren't applied. If a
                    country's tax model includes taxes in the price, make sure
                    the custom price include tax. If a country's tax model
                    excludes tax from the price, Appcharge adds the applicable
                    tax during checkout.

                     Overrides apply only to the countries you specify.
            example:
              priceInUsdCents: 999
              priceOverrides:
                - countryCode2: BR
                  price: 29.99
      responses:
        '201':
          description: Price point created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PricePoint'
        '400':
          description: >-
            Bad request. This can occur due to a schema validation error or an
            invalid country code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
              examples:
                schemaError:
                  summary: Schema validation error
                  value:
                    message: Invalid request body
                badCountryCode:
                  summary: Invalid country code
                  value:
                    message: Country code ZZ not found in existing custom pricing.
        '409':
          description: Conflict. The price point already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictErrorResponse'
              example:
                message: Cannot create new pricing. The price point already exists.
components:
  schemas:
    PriceOverride:
      type: object
      properties:
        countryCode2:
          type: string
          description: Country code in ISO 3166-1 alpha-2 format.
          example: BR
        price:
          type: number
          description: >-
            Override price amount. If the country's currency isn't enabled, the
            value is treated as USD and displayed in USD.
          example: 29.99
    PricePoint:
      type: object
      properties:
        priceInUsdCents:
          type: number
          description: Base price in USD cents.
          example: 999
        lastUpdate:
          type: string
          format: date-time
          description: >-
            Timestamp indicating when the price point was last updated, in UTC
            ISO 8601 format.
          example: '2026-01-01T14:30:00Z'
        priceByCountry:
          type: array
          items:
            $ref: '#/components/schemas/PriceByCountry'
          description: List of localized prices by country, including overrides if present.
    BadRequestErrorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: Error message describing what went wrong.
          example: >-
            Invalid priceInUsdCents value: must be a positive integer [invalid1,
            invalid2].
    ConflictErrorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: Error message describing what went wrong.
          example: Cannot create new pricing. The price point already exists.
    PriceByCountry:
      type: object
      properties:
        price:
          type: number
          description: Localized price for the country.
          example: 7.99
        currencyCode:
          type: string
          description: Currency code.
          example: GBP
        isOverridden:
          type: boolean
          description: Whether the price was overridden.
          example: false
        taxModel:
          type: string
          enum:
            - Included
            - Excluded
          description: Tax model applied to the price.
          example: Included
        taxRate:
          type: number
          description: Tax rate applied to the price.
          example: 20
        country:
          type: string
          description: Country name.
          example: United Kingdom
        countryCode2:
          type: string
          description: >-
            Country code in [ISO 3166-1
            alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
          example: GB
        usdExchangeRateOnCalc:
          type: number
          description: USD exchange rate used at the time of calculation.
          example: 0.79
        exchangeRateDrift:
          type: string
          description: Exchange rate drift since the last calculation.
          example: '-1.2%'

````