---
title: 현금영수증 발급 취소
description: POST /v1/cash-receipts/{id}/revoke 로 국세청 발급이 끝난 현금영수증의 남은 금액 전체를 취소해요.
sidebar:
  label: 현금영수증 발급 취소
  order: 4
  badge: POST
---

```http
POST /v1/cash-receipts/{id}/revoke
```

`status`가 `ISSUED`인 현금영수증의 남은 금액 전체를 취소해요. 페이싱크가 취소 사유 "거래 취소"로 취소 현금영수증을 발급하고, 원본의 `status`는 `REVOKED`로 바뀌어요.

:::warning
v2부터 취소 조건이 바뀌었어요. 예전에는 `PENDING`에서만 취소할 수 있었지만, 이제는 국세청 처리가 끝난 `ISSUED`에서만 취소할 수 있어요. `PENDING`, `FAILED`, `REVOKED` 상태에서는 `CASH_RECEIPT_NOT_REVOCABLE`이 와요.
:::

금액 일부만 취소하려면 [v2 현금영수증 취소](/api-reference/cash-receipts/cancel)를 쓰세요.

## 경로 파라미터

| 파라미터 | 타입 | 설명 |
| --- | --- | --- |
| `id` | string | 취소할 현금영수증 ID예요. `crt_`로 시작해요. |

## 요청 예시

```bash cURL
curl -X POST https://api.paysync.kr/v1/cash-receipts/crt_a1b2c3d4e5f6g7h8i9j0k1l2/revoke \
  -H "Authorization: Bearer $PAYSYNC_API_KEY"
```

```js Node.js
const res = await fetch(`https://api.paysync.kr/v1/cash-receipts/${cashReceiptId}/revoke`, {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PAYSYNC_API_KEY}` },
});
const { code } = await res.json();
```

```python Python
import os
import requests

res = requests.post(
    f"https://api.paysync.kr/v1/cash-receipts/{cash_receipt_id}/revoke",
    headers={"Authorization": f"Bearer {os.environ['PAYSYNC_API_KEY']}"},
)
print(res.json())
```

## 응답

```json 200 OK
{
  "code": "OK",
  "data": null
}
```

## 오류

| HTTP | `code` | 발생 조건 |
| --- | --- | --- |
| 401 | `NOT_AUTHORIZED` | API 키가 없거나 올바르지 않아요. |
| 403 | `INSUFFICIENT_PERMISSIONS` | 읽기 전용 API 키예요. |
| 404 | `CASH_RECEIPT_NOT_FOUND` | 현금영수증이 없어요. |
| 409 | `CASH_RECEIPT_NOT_REVOCABLE` | `ISSUED` 상태가 아니에요. |
| 500 | `POPBILL_API_FAILED` | 팝빌이 취소 요청을 거절했거나 팝빌 호출이 실패했어요. 원본은 그대로 `ISSUED`로 남아요. |
