---
title: "Create a tax rate"
method: POST
path: "/taxes/rates"
tags: ["Tax Rates"]
---

# Create a tax rate

`POST /taxes/rates`

Use when defining a new tax rate (e.g. VAT or sales tax) for use in invoices. Attach to customers or products via tax associations.

## Request body

- CreateTaxRateRequest
  - `code` string, required — code is the unique alphanumeric case sensitive identifier for the tax rate (required)
  - `description` string — description is an optional text description providing details about the tax rate
  - `fixed_value` string — fixed_value is the fixed monetary amount when tax_rate_type is "fixed"
  - `metadata` object — metadata contains additional key-value pairs for storing extra information
  - `name` string, required — name is the human-readable name for the tax rate (required)
  - `percentage_value` string — percentage_value is the percentage value (0-100) when tax_rate_type is "percentage"
  - `scope` 'INTERNAL' | 'EXTERNAL' | 'ONETIME'
  - `tax_rate_type` 'percentage' | 'fixed'

## Response `201`

Created

- TaxRateResponse
  - `code` string
  - `created_at` string, date-time
  - `created_by` string
  - `description` string
  - `environment_id` string
  - `fixed_value` string
  - `id` string
  - `metadata` object
  - `name` string
  - `percentage_value` string
  - `scope` 'INTERNAL' | 'EXTERNAL' | 'ONETIME'
  - `status` 'published' | 'deleted' | 'archived'
  - `tax_rate_status` 'ACTIVE' | 'INACTIVE'
  - `tax_rate_type` 'percentage' | 'fixed'
  - `tenant_id` string
  - `updated_at` string, date-time
  - `updated_by` string

## Other responses

- `400` — Invalid request
- `500` — Server error

## Changes

- **2026-07-15** `f8ecf435d25d` — 2 warning
  - added the new `not_implemented` enum value to the `code` response property for the response status `400`
  - added the new `not_implemented` enum value to the `code` response property for the response status `500`
- **2026-07-09** `7d57386313c7` — 8 breaking, 10 warning, 5 info
  - request property `scope` was restricted to a list of enum values
  - request property `tax_rate_type` was restricted to a list of enum values
  - the `scope` request property type/format changed from ``/`` to `string`/``
  - the `tax_rate_type` request property type/format changed from ``/`` to `string`/``
  - …19 more
- **2026-07-09** `4b1a811c4179` — 13 breaking, 10 info
  - removed the enum value `EXTERNAL` of the request property `scope`
  - removed the enum value `INTERNAL` of the request property `scope`
  - removed the enum value `ONETIME` of the request property `scope`
  - removed the enum value `fixed` of the request property `tax_rate_type`
  - …19 more
- **2026-05-18** `8ec2edea6b20` — 4 warning
  - removed the optional property `details` from the response with the `400` status
  - removed the optional property `details` from the response with the `500` status
  - added the new `too_many_requests` enum value to the `code` response property for the response status `400`
  - added the new `too_many_requests` enum value to the `code` response property for the response status `500`
- …earlier changes not shown

[Full history](https://skmtc.dev/flexprice/apis/flexprice-api/changes/taxes/rates/post.md)

---

[API](https://skmtc.dev/flexprice/apis/flexprice-api.md) · [All operations](https://skmtc.dev/flexprice/apis/flexprice-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/flexprice/flexprice-api/revisions/9cd0dab91f5c/schema)
