> For the complete documentation index, see [llms.txt](https://developers.payssam.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.payssam.kr/api/api-v2/send.md).

# 청구서 발송 및 파기

## &#x20;   청구서 발송<br>

> &#x20;   결제 금액을 결제 고객에게 청구하기 위해 청구서를 생성하고\
> &#x20;   sendType에 따라 청구서를 발송합니다.\
> \
> &#x20;   발송방식 sendType\
> &#x20;   TALK : 생성된 청구서를 결제선생이 발송하는 방식\
> &#x20;   URL : 생성된 청구서의 URL을 전달하는 방식<br>

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"tags":[],"servers":[{"url":null,"description":"Generated server url"}],"paths":{"/bill":{"post":{"tags":["청구서 발송/파기"],"summary":"    청구서 발송\n","description":"    결제 금액을 결제 고객에게 청구하기 위해 청구서를 생성하고\n    sendType에 따라 청구서를 발송합니다.\n\n    발송방식 sendType\n    TALK : 생성된 청구서를 결제선생이 발송하는 방식\n    URL : 생성된 청구서의 URL을 전달하는 방식\n","operationId":"billSend","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillRequest"}}},"required":true},"responses":{"200":{"description":"성공","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseBillResponse"}}}}}}}},"components":{"schemas":{"BillRequest":{"type":"object","description":"청구서 생성 요청 (sendType=TALK: 카카오톡 발송 / sendType=URL: URL만 응답)","properties":{"apiKey":{"type":"string","description":"파트너 연동을 위한 고유키","maxLength":32,"minLength":0},"member":{"type":"string","description":"파트너 사용자 코드","maxLength":60,"minLength":0},"merchant":{"type":"string","description":"파트너 매장 코드","maxLength":60,"minLength":0},"bill":{"$ref":"#/components/schemas/CreateBillInfo"}},"required":["apiKey","member","merchant"]},"CreateBillInfo":{"type":"object","properties":{"billId":{"type":"string","description":"청구서 ID","maxLength":20,"minLength":1},"sendType":{"type":"string","description":"발송 방식: TALK (카카오톡 발송) 또는 URL (URL만 응답)","enum":["TALK","URL"]},"billIssuer":{"type":"string","description":"청구서 발급처명","maxLength":50,"minLength":0},"productName":{"type":"string","description":"청구 사유","minLength":1},"price":{"type":"string","description":"결제 금액","minLength":1},"supplyPrice":{"type":"string","description":"공급가액"},"tax":{"type":"string","description":"세액"},"memberName":{"type":"string","description":"고객명","minLength":1},"phone":{"type":"string","description":"고객 전화번호","minLength":1},"message":{"type":"string","description":"안내메세지"},"expireDt":{"type":"string","description":"유효기간 YYYY-MM-DD"},"hash":{"type":"string","description":"    통신 암호 키\n    {phone} 값이 설정된 경우 {bill_id} + \",\" + {phone} + \",\" + {price} 값으로 Hash 생성\n    {phone} 값이 설정되어 있지 않은 경우 {bill_id} + \",\" + {price} 값으로 Hash 생성\n","minLength":1},"callbackUrl":{"type":"string","description":"결제 완료 콜백 URL","minLength":1},"pageRedirectUrl":{"type":"string","description":"결제 완료 후 리다이렉트 URL (sendType=URL 인 경우에만 활성화)"}},"required":["billId","callbackUrl","hash","memberName","phone","price","productName","sendType"]},"BaseResponseBillResponse":{"type":"object","description":"공통 API 응답 포맷 (api.spec: code/message/data)","properties":{"code":{"type":"string","description":"응답 코드"},"message":{"type":"string","description":"응답 메시지"},"data":{"$ref":"#/components/schemas/BillResponse","description":"응답 데이터"}}},"BillResponse":{"type":"object","description":"청구서 생성 응답","properties":{"apiKey":{"type":"string","description":"파트너 연동을 위한 고유키","maxLength":32,"minLength":0},"member":{"type":"string","description":"파트너 사용자 코드","maxLength":60,"minLength":0},"merchant":{"type":"string","description":"파트너 매장 코드","maxLength":60,"minLength":0},"billId":{"type":"string","description":"청구서 ID"},"hash":{"type":"string","description":"요청 시 전달된 해시값"},"shortUrl":{"type":"string","description":"생성된 청구서 단축 URL"}},"required":["apiKey","member","merchant"]}}}}
```

## 청구서 파기

> &#x20;   결제를 진행할 수 없도록 발송된 청구서를 파기합니다.\
> &#x20;   결제가 승인되기 전에만 파기가 가능하며, 결제가 승인된 후에는 파기할 수 없습니다.\
> \
> &#x20;   \- 청구서를 잘못 보낸경우 사용합니다.<br>

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"tags":[],"servers":[{"url":null,"description":"Generated server url"}],"paths":{"/bill/destroy":{"post":{"tags":["청구서 발송/파기"],"summary":"청구서 파기","description":"    결제를 진행할 수 없도록 발송된 청구서를 파기합니다.\n    결제가 승인되기 전에만 파기가 가능하며, 결제가 승인된 후에는 파기할 수 없습니다.\n\n    - 청구서를 잘못 보낸경우 사용합니다.\n","operationId":"billDestroy","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillDestroyRequest"}}},"required":true},"responses":{"200":{"description":"성공","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseBillDestroyResponse"}}}}}}}},"components":{"schemas":{"BillDestroyRequest":{"type":"object","properties":{"apiKey":{"type":"string","description":"파트너 연동을 위한 고유키","maxLength":32,"minLength":0},"member":{"type":"string","description":"파트너 사용자 코드","maxLength":60,"minLength":0},"merchant":{"type":"string","description":"파트너 매장 코드","maxLength":60,"minLength":0},"bill":{"$ref":"#/components/schemas/DestroyBillInfo"}},"required":["apiKey","member","merchant"]},"DestroyBillInfo":{"type":"object","properties":{"billId":{"type":"string","description":"청구서 ID","maxLength":20,"minLength":1},"price":{"type":"string","description":"결제 금액","minLength":1},"hash":{"type":"string","description":"    통신 암호 키\n    {phone} 값이 설정된 경우 {bill_id} + \",\" + {phone} + \",\" + {price} 값으로 Hash 생성\n    {phone} 값이 설정되어 있지 않은 경우 {bill_id} + \",\" + {price} 값으로 Hash 생성\n","minLength":1}},"required":["billId","hash","price"]},"BaseResponseBillDestroyResponse":{"type":"object","description":"공통 API 응답 포맷 (api.spec: code/message/data)","properties":{"code":{"type":"string","description":"응답 코드"},"message":{"type":"string","description":"응답 메시지"},"data":{"$ref":"#/components/schemas/BillDestroyResponse","description":"응답 데이터"}}},"BillDestroyResponse":{"type":"object","description":"청구서 파기 응답","properties":{"apiKey":{"type":"string","description":"파트너 연동을 위한 고유키"},"billId":{"type":"string","description":"파기된 청구서 ID"}}}}}}
```

## 카카오톡 재발송

> &#x20;   기발송된 청구서를 재발송합니다.\
> &#x20;   청구 내용은 동일하며 알림톡이 새로 발송되므로 쌤포인트는 차감됩니다.\
> \
> &#x20;   사용 시나리오\
> &#x20;   \- 고객이 핸드폰을 분실한경우\
> &#x20;   \- 기존 알림톡을 삭제하여 청구서 링크를 찾을 수 없는 경우<br>

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"tags":[],"servers":[{"url":null,"description":"Generated server url"}],"paths":{"/bill/resend":{"post":{"tags":["청구서 발송/파기"],"summary":"카카오톡 재발송","description":"    기발송된 청구서를 재발송합니다.\n    청구 내용은 동일하며 알림톡이 새로 발송되므로 쌤포인트는 차감됩니다.\n\n    사용 시나리오\n    - 고객이 핸드폰을 분실한경우\n    - 기존 알림톡을 삭제하여 청구서 링크를 찾을 수 없는 경우\n","operationId":"billResend","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillResendRequest"}}},"required":true},"responses":{"200":{"description":"성공","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseBillResendResponse"}}}}}}}},"components":{"schemas":{"BillResendRequest":{"type":"object","properties":{"apiKey":{"type":"string","description":"파트너 연동을 위한 고유키","maxLength":32,"minLength":0},"member":{"type":"string","description":"파트너 사용자 코드","maxLength":60,"minLength":0},"merchant":{"type":"string","description":"파트너 매장 코드","maxLength":60,"minLength":0},"bill":{"$ref":"#/components/schemas/ResendBillInfo"}},"required":["apiKey","member","merchant"]},"ResendBillInfo":{"type":"object","properties":{"billId":{"type":"string","description":"청구서 ID","maxLength":20,"minLength":1}},"required":["billId"]},"BaseResponseBillResendResponse":{"type":"object","description":"공통 API 응답 포맷 (api.spec: code/message/data)","properties":{"code":{"type":"string","description":"응답 코드"},"message":{"type":"string","description":"응답 메시지"},"data":{"$ref":"#/components/schemas/BillResendResponse","description":"응답 데이터"}}},"BillResendResponse":{"type":"object","description":"카카오톡 청구서 재발송 응답","properties":{"apiKey":{"type":"string","description":"파트너 연동을 위한 고유키"},"billId":{"type":"string","description":"재발송된 청구서 ID"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.payssam.kr/api/api-v2/send.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
