---
title: "Splits a Turkish amount into net, VAT and (optionally) withholding: who pays the seller, who remits the withheld VAT."
method: GET
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.

`GET /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`

In the GET form every field is a query parameter; object and array fields are JSON-encoded.

## Query parameters

- `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)
