---
title: "Splits a Turkish amount into net, VAT and (optionally) withholding: who pays the seller, who remits the withheld VAT."
method: POST
path: "/v1/tr/vat"
tags: ["Turkey"]
---

# Splits a Turkish amount into net, VAT and (optionally) withholding: who pays the seller, who remits the withheld VAT.

`POST /v1/tr/vat`

## Request

- Base URL: `https://api.temsor.com`
- URL: `https://api.temsor.com/v1/tr/vat`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

For invoice lines and checkout totals that have to show KDV dahil / hariç and, when the parties are in a withholding (tevkifat) situation, the split between what the buyer pays the seller and what the buyer remits to the tax office. Rates are 0, 1, 10 and 20 percent. Withholding is a fraction of the VAT (2/10 through 10/10), or a named code from the GİB partial-withholding list. The 2026 threshold (TRY 12,000 gross) is reported and compared with the amount, but `applies` is always null: whether withholding actually applies depends on the taxpayer status of both parties, which this endpoint does not know. Feeding it a fraction is not a legal opinion.

**Credits per call:** 1 · **Operation id:** `tr_vat`

## Request body

- object
  - `amount` number, required: The amount to tax. See amountIncludesVat.
  - `amountIncludesVat` boolean: If true, `amount` is the gross (KDV dahil); if false, it is the net/matrah.
  - `rate` union: VAT rate in percent. 0, 1, 10 or 20.
    - 0
    - 1
    - 10
    - 20
  - `withholding` string: Withholding fraction such as "5/10", or a code from the list (reklam, tasima, hurda, isgucu…).

## Response `200`

Success

- object
  - `ok` unknown, required
  - `data` object, required
    - `net` number, required
    - `vatRate` number, required
    - `vatAmount` number, required
    - `gross` number, required
    - `withholding` object, nullable, required
      - `input` string, required
      - `fraction` string, required
      - `numerator` number, required
      - `denominator` number, required
      - `withheldVat` number, required
      - `vatPayableBySeller` number, required
      - `buyerPaysSeller` number, required
      - `listedCode` string, nullable, required
    - `threshold` object, required
      - `gross` number, required
      - `from` string, required
      - `amountMeetsThreshold` boolean, required
      - `applies` unknown, required
      - `source` string, required
    - `ratesAsOf` string, required
    - `sources` string[], required
    - `warnings` string[], required
  - `meta` object
    - `credits` integer
    - `cached` boolean
    - `requestId` string
    - `durationMs` integer

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `429`: Rate limit exceeded — wait `Retry-After` seconds. The RateLimit headers are sent here too.

---

[API](https://skmtc.dev/temsor/apis/temsor-api.md) · [All operations](https://skmtc.dev/temsor/apis/temsor-api/llms.txt) · [OpenAPI document](https://skmtc.dev/temsor/apis/temsor-api/revisions/19702107e15a?raw)
