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

# Models

## The SendAlimtalkRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"SendAlimtalkRequest":{"type":"object","required":["cid","tid","to","variables"],"properties":{"cid":{"type":"string","description":"발송 채널 ID. [채널 목록 조회](#/Channel/listChannels)에서 확인할 수 있습니다."},"tid":{"type":"string","description":"템플릿 ID. [템플릿 목록 조회](#/Template/listTemplates)에서 확인할 수 있습니다."},"to":{"type":"string","description":"수신자 전화번호.\n`010-1234-5678`, `01012345678` 형식 모두 허용됩니다.\n"},"variables":{"type":"object","description":"템플릿 변수 (키-값 쌍).\n[템플릿 상세 조회](#/Template/getTemplateDetail)의 `variables` 배열에 있는 모든 변수에 대한 값을 포함해야 합니다.\n","additionalProperties":{"type":"string"}}}}}}}
```

## The SendEmailRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"SendEmailRequest":{"type":"object","required":["to","subject","body"],"properties":{"to":{"type":"string","format":"email","description":"수신자 이메일 주소"},"to_name":{"type":"string","description":"수신자 이름 (선택)"},"subject":{"type":"string","description":"이메일 제목.\n`#{변수명}` 형식의 변수를 사용하면 `variables`의 값으로 치환됩니다.\n"},"body":{"type":"string","description":"이메일 본문 (HTML).\n`#{변수명}` 형식의 변수를 사용하면 `variables`의 값으로 치환됩니다.\n"},"variables":{"type":"object","description":"변수 (키-값 쌍, 선택).\n`subject`와 `body`에 사용된 `#{변수명}`을 치환합니다.\n","additionalProperties":{"type":"string"}}}}}}}
```

## The MessageIdRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"MessageIdRequest":{"type":"object","required":["message_id"],"properties":{"message_id":{"type":"string","description":"메시지 예약 고유 ID (발송 요청 시 반환된 값)"}}}}}}
```

## The MessageListRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"MessageListRequest":{"type":"object","properties":{"cursor":{"type":"string","nullable":true,"description":"페이지네이션 커서.\n이전 응답의 `next_cursor` 값을 전달합니다. 첫 요청 시 생략합니다.\n"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"한 페이지당 반환할 항목 수 (기본값 20, 최대 100)"},"status":{"type":"string","nullable":true,"description":"상태 필터","enum":["pending","validated","queued","processing","completed","failed","cancelled"]},"message_type":{"type":"string","nullable":true,"description":"메시지 타입 필터","enum":["alimtalk","email"]}}}}}}
```

## The ChannelListRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"ChannelListRequest":{"type":"object","properties":{"cursor":{"type":"string","nullable":true,"description":"페이지네이션 커서.\n이전 응답의 `next_cursor` 값을 전달합니다. 첫 요청 시 생략합니다.\n"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"한 페이지당 반환할 항목 수 (기본값 20, 최대 100)"},"type":{"type":"string","nullable":true,"description":"채널 타입 필터","enum":["kakao","email","sms"]}}}}}}
```

## The TemplateListRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"TemplateListRequest":{"type":"object","properties":{"cursor":{"type":"string","nullable":true,"description":"페이지네이션 커서.\n이전 응답의 `next_cursor` 값을 전달합니다. 첫 요청 시 생략합니다.\n"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"한 페이지당 반환할 항목 수 (기본값 20, 최대 100)"},"type":{"type":"string","nullable":true,"description":"템플릿 타입 필터","enum":["alimtalk","brandtalk","sms","mms","email"]},"status":{"type":"string","nullable":true,"description":"템플릿 상태 필터"}}}}}}
```

## The SendMessageResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"SendMessageResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"message_id":{"type":"string","description":"메시지 예약 고유 ID.\n이 값으로 상태 조회, 취소 등을 할 수 있습니다.\n"}}}}}}}}
```

## The MessageStatusResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"MessageStatusResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"message_id":{"type":"string","description":"메시지 예약 고유 ID"},"status":{"type":"string","description":"메시지 상태","enum":["pending","validated","queued","processing","completed","failed","cancelled"]},"agency_type":{"type":"string","description":"발송 대행사 유형","enum":["kakao","email"]},"message_type":{"type":"string","description":"메시지 유형","enum":["alimtalk","email"]},"scheduled_at":{"type":"string","format":"date-time","description":"발송 예약 시각"},"completed_at":{"type":"string","format":"date-time","nullable":true,"description":"발송 완료 시각 (미완료 시 null)"}}}}}}}}
```

## The MessageListResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"MessageListResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MessageListItem"}},"next_cursor":{"type":"string","nullable":true,"description":"다음 페이지 커서 (마지막 페이지이면 null)"},"has_more":{"type":"boolean","description":"다음 페이지 존재 여부"}}}}},"MessageListItem":{"type":"object","properties":{"message_id":{"type":"string","description":"메시지 예약 고유 ID"},"status":{"type":"string","description":"메시지 상태"},"agency_type":{"type":"string","description":"발송 대행사 유형"},"message_type":{"type":"string","description":"메시지 유형"},"scheduled_at":{"type":"string","format":"date-time","description":"발송 예약 시각"},"completed_at":{"type":"string","format":"date-time","nullable":true,"description":"발송 완료 시각"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"}}}}}}
```

## The MessageListItem object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"MessageListItem":{"type":"object","properties":{"message_id":{"type":"string","description":"메시지 예약 고유 ID"},"status":{"type":"string","description":"메시지 상태"},"agency_type":{"type":"string","description":"발송 대행사 유형"},"message_type":{"type":"string","description":"메시지 유형"},"scheduled_at":{"type":"string","format":"date-time","description":"발송 예약 시각"},"completed_at":{"type":"string","format":"date-time","nullable":true,"description":"발송 완료 시각"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"}}}}}}
```

## The CancelMessageResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"CancelMessageResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"message_id":{"type":"string","description":"취소된 메시지 ID"},"status":{"type":"string","description":"변경된 상태"}}}}}}}}
```

## The ChannelListResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"ChannelListResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelListItem"}},"next_cursor":{"type":"string","nullable":true,"description":"다음 페이지 커서 (마지막 페이지이면 null)"},"has_more":{"type":"boolean","description":"다음 페이지 존재 여부"}}}}},"ChannelListItem":{"type":"object","properties":{"cid":{"type":"string","description":"채널 ID"},"type":{"type":"string","description":"채널 유형","enum":["kakao","email","sms"]},"name":{"type":"string","description":"채널 이름"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"}}}}}}
```

## The ChannelListItem object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"ChannelListItem":{"type":"object","properties":{"cid":{"type":"string","description":"채널 ID"},"type":{"type":"string","description":"채널 유형","enum":["kakao","email","sms"]},"name":{"type":"string","description":"채널 이름"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"}}}}}}
```

## The TemplateListResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"TemplateListResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TemplateListItem"}},"next_cursor":{"type":"string","nullable":true,"description":"다음 페이지 커서 (마지막 페이지이면 null)"},"has_more":{"type":"boolean","description":"다음 페이지 존재 여부"}}}}},"TemplateListItem":{"type":"object","properties":{"tid":{"type":"string","description":"템플릿 ID"},"name":{"type":"string","description":"템플릿 이름"},"type":{"type":"string","description":"템플릿 유형"},"status":{"type":"string","description":"템플릿 상태"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"},"updated_at":{"type":"string","format":"date-time","description":"수정 시각"}}}}}}
```

## The TemplateListItem object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"TemplateListItem":{"type":"object","properties":{"tid":{"type":"string","description":"템플릿 ID"},"name":{"type":"string","description":"템플릿 이름"},"type":{"type":"string","description":"템플릿 유형"},"status":{"type":"string","description":"템플릿 상태"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"},"updated_at":{"type":"string","format":"date-time","description":"수정 시각"}}}}}}
```

## The TemplateDetailResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"TemplateDetailResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"tid":{"type":"string","description":"템플릿 ID"},"name":{"type":"string","description":"템플릿 이름"},"type":{"type":"string","description":"템플릿 유형"},"status":{"type":"string","description":"템플릿 상태"},"variables":{"type":"array","description":"템플릿에서 사용하는 변수 목록.\n알림톡 발송 시 `variables`에 이 목록의 모든 변수 값을 포함해야 합니다.\n","items":{"type":"string"}},"created_at":{"type":"string","format":"date-time","description":"생성 시각"},"updated_at":{"type":"string","format":"date-time","description":"수정 시각"}}}}}}}}
```

## The PointBalanceResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"PointBalanceResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"available_point":{"type":"integer","description":"현재 사용 가능한 포인트 잔액"}}}}}}}}
```

## The WebhookReceiveRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"WebhookReceiveRequest":{"type":"object","properties":{"receiver_tel":{"type":"string","description":"수신자 전화번호.\n`to` 필드로도 전달할 수 있습니다. 둘 다 있으면 `receiver_tel`이 우선합니다.\n`010-1234-5678`, `01012345678` 형식 모두 허용됩니다.\n"},"to":{"type":"string","description":"수신자 전화번호 (receiver_tel의 별칭)"},"variables":{"type":"object","nullable":true,"description":"템플릿 변수 (키-값 쌍).\n웹훅에 연결된 템플릿에 `#{변수명}` 형식으로 정의된 변수의 값을 전달합니다.\n","additionalProperties":{"type":"string"}}}}}}}
```

## The WebhookListRequest object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"WebhookListRequest":{"type":"object","properties":{"cursor":{"type":"string","nullable":true,"description":"페이지네이션 커서"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"한 페이지당 반환할 항목 수 (기본값 20, 최대 100)"},"is_enabled":{"type":"string","nullable":true,"description":"활성/비활성 필터","enum":["Y","N"]}}}}}}
```

## The WebhookListResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"WebhookListResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WebhookListItem"}},"next_cursor":{"type":"string","nullable":true,"description":"다음 페이지 커서 (마지막 페이지이면 null)"},"has_more":{"type":"boolean","description":"다음 페이지 존재 여부"}}}}},"WebhookListItem":{"type":"object","properties":{"rid":{"type":"string","description":"루틴 ID"},"name":{"type":"string","description":"루틴 이름"},"is_enabled":{"type":"string","description":"활성 여부 (Y/N)","enum":["Y","N"]},"channel_type":{"type":"string","description":"채널 유형","enum":["kakao","email","sms"]},"store_name":{"type":"string","nullable":true,"description":"연결된 스토어 이름 (웹훅 루틴은 null)"},"job_name":{"type":"string","nullable":true,"description":"트리거 작업 이름 (웹훅 루틴은 null)"},"webhook_code":{"type":"string","nullable":true,"description":"웹훅 트리거 코드 (웹훅 루틴만 존재)"},"block_send_time_start":{"type":"string","nullable":true,"description":"발송 금지 시작 시간 (HH:MM)"},"block_send_time_end":{"type":"string","nullable":true,"description":"발송 금지 종료 시간 (HH:MM)"},"schedule_send_time":{"type":"string","nullable":true,"description":"예약 발송 시간 (HH:MM)"},"rate_send_days":{"type":"integer","description":"지연 발송 일수 (0이면 즉시)"},"result_callback_url":{"type":"string","nullable":true,"description":"발송 결과 수신 웹훅 URL"},"result_callback_method":{"type":"string","nullable":true,"description":"결과 알림 HTTP 메서드","enum":["POST","PUT"]},"created_at":{"type":"string","format":"date-time","description":"생성 시각"}}}}}}
```

## The WebhookListItem object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"WebhookListItem":{"type":"object","properties":{"rid":{"type":"string","description":"루틴 ID"},"name":{"type":"string","description":"루틴 이름"},"is_enabled":{"type":"string","description":"활성 여부 (Y/N)","enum":["Y","N"]},"channel_type":{"type":"string","description":"채널 유형","enum":["kakao","email","sms"]},"store_name":{"type":"string","nullable":true,"description":"연결된 스토어 이름 (웹훅 루틴은 null)"},"job_name":{"type":"string","nullable":true,"description":"트리거 작업 이름 (웹훅 루틴은 null)"},"webhook_code":{"type":"string","nullable":true,"description":"웹훅 트리거 코드 (웹훅 루틴만 존재)"},"block_send_time_start":{"type":"string","nullable":true,"description":"발송 금지 시작 시간 (HH:MM)"},"block_send_time_end":{"type":"string","nullable":true,"description":"발송 금지 종료 시간 (HH:MM)"},"schedule_send_time":{"type":"string","nullable":true,"description":"예약 발송 시간 (HH:MM)"},"rate_send_days":{"type":"integer","description":"지연 발송 일수 (0이면 즉시)"},"result_callback_url":{"type":"string","nullable":true,"description":"발송 결과 수신 웹훅 URL"},"result_callback_method":{"type":"string","nullable":true,"description":"결과 알림 HTTP 메서드","enum":["POST","PUT"]},"created_at":{"type":"string","format":"date-time","description":"생성 시각"}}}}}}
```

## The WebhookDetailResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"WebhookDetailResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","properties":{"rid":{"type":"string","description":"루틴 ID"},"name":{"type":"string","description":"루틴 이름"},"is_enabled":{"type":"string","description":"활성 여부","enum":["Y","N"]},"channel_type":{"type":"string","description":"채널 유형"},"channel_name":{"type":"string","description":"채널 이름"},"store_name":{"type":"string","nullable":true,"description":"연결된 스토어 이름"},"job_name":{"type":"string","nullable":true,"description":"트리거 작업 이름"},"webhook_code":{"type":"string","nullable":true,"description":"웹훅 트리거 코드"},"templates":{"type":"array","description":"연결된 템플릿 목록","items":{"type":"object","properties":{"tid":{"type":"string","description":"템플릿 ID"},"name":{"type":"string","description":"템플릿 이름"},"weight":{"type":"integer","description":"가중치 (복수 템플릿 시 랜덤 선택 비율)"}}}},"block_send_time_start":{"type":"string","nullable":true,"description":"발송 금지 시작 시간 (HH:MM).\n이 시간부터 `block_send_time_end`까지는 메시지 발송이 보류됩니다.\n"},"block_send_time_end":{"type":"string","nullable":true,"description":"발송 금지 종료 시간 (HH:MM).\n금지 시간대에 예정된 메시지는 이 시각 이후로 자동 지연됩니다.\n"},"schedule_send_time":{"type":"string","nullable":true,"description":"예약 발송 시간 (HH:MM).\n설정 시 트리거 발생 시각과 관계없이 해당 시각에 맞춰 발송합니다.\n"},"rate_send_days":{"type":"integer","description":"지연 발송 일수.\n트리거 발생 후 N일 뒤 발송됩니다. 0이면 즉시 발송합니다.\n"},"result_callback_url":{"type":"string","nullable":true,"description":"발송 결과 수신 웹훅 URL.\n메시지 발송 완료 또는 실패 시 이 URL로 결과를 전송합니다.\n"},"result_callback_method":{"type":"string","nullable":true,"description":"결과 알림 HTTP 메서드","enum":["POST","PUT"]},"result_callback_headers":{"type":"string","nullable":true,"description":"결과 알림 요청 시 포함할 커스텀 HTTP 헤더 (JSON 문자열).\n예: `{\"X-Custom-Key\": \"my-secret\", \"Authorization\": \"Bearer token\"}`\n"},"created_at":{"type":"string","format":"date-time","description":"생성 시각"},"updated_at":{"type":"string","format":"date-time","description":"수정 시각"}}}}}}}}
```

## The ResultNotificationPayload object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"ResultNotificationPayload":{"type":"object","description":"메시지 발송 결과 알림 페이로드.\n\n루틴에 `result_callback_url`이 설정되어 있으면, 메시지 발송이 완료되거나 실패했을 때\n설정된 URL로 이 형식의 데이터를 전송합니다.\n\n- HTTP 메서드: 루틴의 `result_callback_method` (기본값 POST)\n- Content-Type: `application/json`\n- 커스텀 헤더: 루틴의 `result_callback_headers`에 정의된 값\n","properties":{"event":{"type":"string","description":"이벤트 유형","enum":["message.completed","message.failed"]},"timestamp":{"type":"string","format":"date-time","description":"이벤트 발생 시각"},"data":{"type":"object","properties":{"message_id":{"type":"string","description":"메시지 예약 고유 ID"},"rid":{"type":"string","description":"루틴 ID"},"status":{"type":"string","description":"발송 결과 상태","enum":["completed","failed"]},"agency_type":{"type":"string","description":"발송 대행사 유형","enum":["kakao","sms","email"]},"message_type":{"type":"string","description":"메시지 유형","enum":["alimtalk","brandtalk","sms","mms","email"]},"receiver_tel":{"type":"string","nullable":true,"description":"수신자 전화번호"},"order_id":{"type":"string","nullable":true,"description":"외부 참조 ID (웹훅 요청 시 전달된 값)"},"error_code":{"type":"string","nullable":true,"description":"오류 코드 (실패 시)"},"error_message":{"type":"string","nullable":true,"description":"오류 메시지 (실패 시)"},"completed_at":{"type":"string","format":"date-time","nullable":true,"description":"발송 완료/실패 시각"}}}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"object","nullable":true,"properties":{"reason":{"type":"string","description":"실패 상세 사유"}}}}}}}}
```

## The BaseResponse object

```json
{"openapi":"3.0.3","info":{"title":"Asend API Reference","version":"1.1.0"},"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"message":{"type":"string"},"data":{"nullable":true}}}}}}
```
