쿠폰번호 발급
다른번호 발급 쿠폰의 쿠폰번호를 무작위로 만들고, 만든 번호를 조회합니다. 한 번호는 한 사람만 쓰며, 카카오톡 채널 온라인 쿠폰 등에 올립니다.
업데이트됨 10.16 — 쿠폰번호는 쿠폰 하나에 10,000개까지입니다무엇인가요
다른번호 발급(serial_mode: UNIQUE) 쿠폰의 쿠폰번호를 무작위로 만들고 조회합니다. 번호를 여럿 만들어 한 번호를 한 사람만 쓰게 하는 방식이라, 문자 · 인쇄물 · 제휴사 · 카카오톡 채널 온라인 쿠폰 등 번호를 한 사람에게 하나씩 나눠 줄 자리에 씁니다. 아래 단계는 카카오톡 채널을 예로 든 것입니다.
- 1쿠폰을 만든다
쿠폰 생성에서
serial_mode를UNIQUE로 둡니다. 발급 수량 · 1인 발급 수는 받지 않습니다 — 만든 번호 수가 곧 상한입니다. - 2번호를 만든다
아래 쿠폰번호 발급로 필요한 만큼 만듭니다. 모자라면 다시 불러 더합니다.
- 3번호를 읽어 카카오에 올린다
발급쿠폰 조회로 받은 번호를 한 줄에 하나씩 txt · csv 로 적어, 카카오톡 채널 관리자센터 > 쿠폰 만들기 > 온라인 쿠폰 > 쿠폰번호 직접 업로드에 올립니다. 쿠폰을 등록할 웹페이지 URL 에는 그 쿠폰의
register_url을 넣습니다. - 4손님이 번호로 쿠폰을 받는다
카카오가
register_url?serial=번호로 손님을 보내고, 손님은 로그인한 뒤 [등록]을 누릅니다. 쓰인 번호는serial_used_count에 쌓이고 쿠폰 이용 내역에 한 장씩 남습니다.
쿠폰번호 발급
https://api.mallstory.kr/v1/shop/{shop_unique}/coupons/{coupon_unique}/serials권한 promotions:write
번호를 count 개 만들어 쿠폰에 더합니다. 이미 만든 번호는 그대로 두고 그 뒤에 쌓입니다. 번호는 영문 대문자 · 숫자 12자이고, 한 쿠폰 안에서 겹치지 않습니다.
요청 본문
| 필드 | 형식 | 설명 |
|---|---|---|
count필수 | number | 이번에 만들 번호 수. 쿠폰 하나에 모두 10,000개까지 — 이미 만든 수와 더해 넘으면 400 이고 남은 자리를 문장으로 알려 줍니다. 그보다 많이 뿌릴 행사는 serial_mode SAME(동일번호 발급)으로 만듭니다 |
curl -X POST 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/coupons/6acdf41b4555cab633c38ca5/serials' \
-H 'Authorization: Bearer msat_8Hk2wQ7...' \
-H 'Content-Type: application/json' \
-d '{"count":3}'{
"created": 3,
"total": 3
}응답 필드
| 필드 | 형식 | 설명 |
|---|---|---|
created | number | 이번에 만든 수 |
total | number | 이 쿠폰에 지금까지 만든 번호 수(serial_count 와 같음) |
번호 규격
| 항목 | 값 |
|---|---|
| 길이 | 12자. 카카오 상한(24자) 안 |
| 수량 | 쿠폰 하나에 10,000개까지. 그보다 많이 뿌릴 행사는 동일번호 발급(serial_mode SAME)으로 — 번호 하나를 per_person_limit 로 막습니다 |
| 쓰는 글자 | ACDEFGHJKLMNPQRTUVWXY2346789 28가지 — 읽어 옮겨 적는 번호라 헷갈리는 글자(O·0 · I·1 · B·8 · S·5 · Z·2)를 뺐습니다 |
| 예 | KLM4T3J729EV · UNM2GHW9H2QL · MR3Q92RHGF6M |
| 등록할 때 | 대소문자를 가리지 않습니다. 손님이 소문자로 적어도 같은 번호로 봅니다 |
{
"code": "InvalidParameterValue",
"message": "다른번호 발급 쿠폰에서만 번호를 만들 수 있습니다.",
"request_id": "req_649ea40413c94d0baed3bd74a8a0aa49"
}오류
| 상태 | code | 언제 |
|---|---|---|
| 400 | InvalidParameterValue | serial_mode 가 UNIQUE 가 아님 · count 가 범위 밖 · 쿠폰 하나의 상한(10,000)을 넘음 |
| 404 | CouponNotExist | 없는 키이거나 지운 쿠폰 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 promotions:write 가 없음 |
발급쿠폰 조회
https://api.mallstory.kr/v1/shop/{shop_unique}/coupons/{coupon_unique}/serials권한 promotions:read
만든 번호를 모두 줍니다(관리자의 번호 내려받기와 같음). 쓰인 번호도 함께 옵니다 — 어느 번호가 쓰였는지는 쿠폰 이용 내역의 serial 로 봅니다. MCP 의 list_coupon_serials 는 앞 200개만 주므로 전부가 필요하면 이 요청을 씁니다.
curl 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/coupons/6acdf41b4555cab633c38ca5/serials' \
-H 'Authorization: Bearer msat_8Hk2wQ7...'{
"coupon_unique": "6acdf41b4555cab633c38ca5",
"count": 3,
"codes": [
"KLM4T3J729EV",
"UNM2GHW9H2QL",
"MR3Q92RHGF6M"
]
}응답 필드
| 필드 | 형식 | 설명 |
|---|---|---|
coupon_unique | string | 쿠폰 키 |
count | number | 번호 수 |
codes | string[] | 번호. 만든 차례대로 |
카카오에 올리는 파일
codes 를 한 줄에 하나씩 적습니다. 머리글 · 따옴표 · 쉼표 없이 번호만 둡니다. 확장자는 txt 또는 csv 입니다.
KLM4T3J729EV
UNM2GHW9H2QL
MR3Q92RHGF6M오류
| 상태 | code | 언제 |
|---|---|---|
| 404 | CouponNotExist | 없는 키이거나 지운 쿠폰 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 promotions:read 가 없음 |