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

# Calculating the Issuance Amount

> How items, supply cost, and tax are calculated when issuing a tax invoice.

## How amounts are calculated

The issuance amount of a tax invoice is the sum of the amounts of all items.

An issuance request also carries the tax type (`taxType`). Set the per-item tax (`items[].tax`) based on the tax type.

| Tax type (`taxType`) | Meaning                               | Item tax (`items[].tax`)                     |
| -------------------- | ------------------------------------- | -------------------------------------------- |
| `TAXABLE`            | Taxable                               | Pass a non-`null` value                      |
| `ZERO_RATE`          | Zero-rate                             | Pass `0` for every item                      |
| `TAX_FREE`           | Tax-exemption (tax-exemption invoice) | Pass `null` for every item or omit the field |

<Info>
  The API rejects the request if you mix actual tax amounts with `null` or omitted fields in one request, or send a non-zero tax for a zero-rate invoice.
</Info>

## Input examples by tax type

```json theme={"dark"}
{
  "taxType": "TAXABLE",
  "items": [{ "supplyCost": 10000, "tax": 1000 }]
}
```

```json theme={"dark"}
{
  "taxType": "ZERO_RATE",
  "items": [{ "supplyCost": 10000, "tax": 0 }]
}
```

```json theme={"dark"}
{
  "taxType": "TAX_FREE",
  "items": [{ "supplyCost": 10000, "tax": null }]
}
```

## Calculation example

The following is an example of issuing a total of KRW 220,000.

**Tax invoice total**

| Issuance amount | Supply cost | Tax    |
| --------------- | ----------- | ------ |
| 220,000         | 200,000     | 20,000 |

**Per-item breakdown**

| Item name   | Unit price (unitPrice) | Quantity (quantity) | Supply cost (supplyCost) | Tax (tax) | Amount (supplyCost + tax) |
| ----------- | ---------------------- | ------------------- | ------------------------ | --------- | ------------------------- |
| First item  | 5,000                  | 10                  | 50,000                   | 5,000     | 55,000                    |
| Second item | 3,000                  | 50                  | 150,000                  | 15,000    | 165,000                   |

## Input limits

The API rejects requests that exceed the limits below.

| Field                                                                     | Limit                                          |
| ------------------------------------------------------------------------- | ---------------------------------------------- |
| Supplier/recipient organization name (`organizationName`)                 | Up to 70 characters                            |
| Representative name (`representativeName`), manager name (`manager.name`) | Up to 30 characters                            |
| Business type (`businessType`), business item (`businessItem`)            | Up to 100 characters                           |
| Manager email (`manager.email`)                                           | Up to 40 characters                            |
| Manager mobile phone number (`manager.telephone`)                         | Up to 20 characters, in `010-1234-5678` format |
| Address (`address`), tax invoice remarks (`description`)                  | Up to 150 characters                           |
| Item name (`items[].name`), item remarks (`items[].description`)          | Up to 100 characters                           |
| Item specification (`items[].specification`)                              | Up to 60 characters                            |
| Number of items (`items`)                                                 | Between 1 and 16                               |

If you enter the recipient manager's mobile phone number, Bolta sends a KakaoTalk notification (AlimTalk) announcing receipt of the tax invoice.

### Unsupported characters

The NTS electronic tax invoice standard disallows certain characters. Bolta handles them in two ways.

**Characters Bolta removes**

Bolta strips invisible characters as soon as it receives the request, then continues with issuance. This covers control characters, format characters such as the zero-width space (U+200B) and the BOM (U+FEFF), unpaired surrogates, and noncharacters ending in U+FFFE or U+FFFF. Tabs, line feeds, and carriage returns are control characters, but Bolta keeps them. Bolta counts the character limits above after removal.

**Characters that fail the request**

The API rejects the request if it contains characters above U+FFFF. Emoji and some CJK extension ideographs fall in this range. The API returns `400` with a message that starts with `세금계산서 입력에 지원하지 않는 문자가 포함되어 있습니다.` and appends the failing input path and code points in brackets. The message reports one input at a time. Remove the characters from that value and send the request again.

Both rules apply to standard issuance, reverse issuance requests, and [Change in Supply Cost amendments](/en/docs/api-introduction/amendment-guide#change-in-supply-cost).
