> ## 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.

# 인증

> 볼타 API 인증 방식과 요청 헤더 사용법을 안내합니다.

## API 키 인증 (Basic Auth)

볼타 API는 HTTP Basic Authentication을 사용합니다. API 키를 Base64로 인코딩하여 `Authorization` 헤더에 포함합니다.

```bash theme={"dark"}
Authorization: Basic {Base64(API_KEY:)}
```

<Warning>
  API 키 뒤에 콜론(`:`)을 붙인 후 Base64 인코딩해야 합니다.
</Warning>

**예시**

```bash theme={"dark"}
# API 키가 test_abc123인 경우
# Base64("test_abc123:") = dGVzdF9hYmMxMjM6

curl -X POST https://xapi.bolta.io/v1/taxInvoices/issue \
  -H "Authorization: Basic dGVzdF9hYmMxMjM6" \
  -H "Content-Type: application/json"
```

## 테스트 키 vs 라이브 키

| 구분    | 접두사     | 용도               |
| ----- | ------- | ---------------- |
| 테스트 키 | `test_` | 샌드박스 환경, 국세청 미연동 |
| 라이브 키 | `live_` | 실제 환경, 국세청 연동    |

테스트 키로 발행한 세금계산서는 실제 국세청에 신고되지 않습니다. 개발 및 테스트 단계에서는 반드시 테스트 키를 사용하세요.

> API 키 발급 방법은 [API 키 가이드](/docs/developer-center/api-key)를 참고하세요.

## 요청 헤더

### Customer-Key

세금계산서를 발행하는 **공급자** 자신을 식별하는 헤더입니다. [고객 생성 API](/api-reference/고객/고객-생성)로 발급받은 `customerKey` 값을 전달합니다.

```bash theme={"dark"}
Customer-Key: customer_bf8paz
```

<Info>
  `customerKey`는 API 키 단위로 독립적으로 관리됩니다. 테스트 키와 라이브 키 각각에서 생성한 `customerKey`는 서로 다른 값이며, 상호 호환되지 않습니다.
</Info>

<Warning>
  **`Customer-Key`는 공급자(발행자) 본인의 키입니다.**

  세금계산서를 받는 거래처(공급받는자)의 정보는 `Customer-Key` 헤더가 아니라 요청 본문의 `supplied` 필드에 포함합니다. `Customer-Key`에 공급받는자의 키를 잘못 전달하지 않도록 주의하세요.
</Warning>

### Client-Reference-Id

요청의 멱등성(idempotency)을 보장하기 위한 헤더입니다. 동일한 `Client-Reference-Id`로 중복 요청하면 기존 결과가 반환됩니다.

```bash theme={"dark"}
Bolta-Client-Reference-Id: your-unique-reference-id
```

네트워크 오류 등으로 응답을 받지 못한 경우, 같은 ID로 재요청하면 중복 발행을 방지할 수 있습니다.
