KakaoTalk AlimTalk from your own channel
What it does
Section titled “What it does”When an app group has a KakaoTalk channel linked and an approved template mapped to the
otp purpose, verification codes for Korean phone numbers go out as AlimTalk under
your Kakao channel instead of SMS. Every other case (non-Korean number, no channel,
template not approved, insufficient prepaid credit, vendor error) falls back to SMS, so
enabling this never blocks a login.
AlimTalk is metered per message from the organization’s prepaid credit at the list price in the pricing table (pass-through, no markup). A message the vendor rejects is refunded. AlimTalk is sent without SMS fallback (알림톡 전용): a recipient who cannot receive AlimTalk gets the SMS path instead (SMS coverage).
While Korean Package waits for approval
Section titled “While Korean Package waits for approval”Korean Package depends on approvals Axowl does not control — the card companies behind the won
payment rail and KG Inicis’ unified identity service. While those are pending, the Korean Package
page in the dashboard opens with a short notice: Korean Package is waiting for approval; connection
is planned for late November. Nothing is broken and nothing needs fixing on your side; the switches
on that page open by themselves when the approval comes through. The API answers
409 product_unavailable to a new purchase in the meantime, and organizations that already have
the add-on keep it.
Review status, in plain words
Section titled “Review status, in plain words”Two things on the Korean tab are reviewed by Kakao, not by Axowl, and the dashboard says so instead of looking stuck:
- Sender profile (channel) — after you enter the verification code, Kakao reviews the channel’s sender profile, usually within 1–2 business days. The badge reads Pending registration and a line under it says templates can be registered once it is approved. There is nothing to click; refresh to see the new status.
- Templates — each message template you request is reviewed by Kakao, usually within 1–2 business days. While it is under review the Request review button is disabled and a line explains why; when approved, the template switches on by itself and appears in the purpose dropdown. If Kakao rejects it, the row shows Kakao’s reason (in Korean) and a line telling you to adjust the text and request review again.
Prerequisites
Section titled “Prerequisites”- Korean Package add-on on the organization. Everything below returns
402 { error: "ADDON_REQUIRED" }without it. - A Kakao business channel, created by you at Kakao Business and switched to a business channel (Kakao verifies the business registration, 2–3 business days). The channel’s home must be public.
- The phone number registered for the channel admin at Kakao Business. Kakao sends the verification code to that admin’s KakaoTalk; nobody else can receive it.
Setup (dashboard)
Section titled “Setup (dashboard)”Open the app group → Korean Package tab. Everything happens on that page; no external window opens.
- Link the channel — enter the channel’s search ID (
@yourchannel), the channel admin’s mobile number and a category, then Request code. Kakao delivers a 6-digit code to the admin’s KakaoTalk. Enter it and press Link. If another app in the same organization already linked that channel, pick it from Channels already linked and it connects at once. - Templates — for each purpose the recommended text is shown. Press Request review with this text; Kakao reviews it (about 2 business days). The status (requested → in review → approved / rejected, with the reason) is listed under the purpose. Once approved, pick it in the dropdown and Save.
The otp template carries two variables, #{service} (the app group name) and #{code}; Axowl fills both.
All routes are under /api/org/{slug}/app-groups/{groupId}/kakao and use the dashboard session
(cookie + CSRF), like the other app-group settings.
| Method | Path | Scope | Purpose |
|---|---|---|---|
GET | / | org.app_group.read | Status: linked channel and sender-profile state, every template with its review status and last reviewer comment, current purpose mapping, recommended bodies, channels other app groups in the organization already linked |
GET | /categories | org.app_group.read | Sender-profile categories [{ code, path }] for the registration form |
POST | /sender/request | org.app_group.update | { plusFriendId, phoneNo, categoryCode } — sends the verification code to the channel admin. Returns { reused: true } and links immediately when the organization already registered that channel |
POST | /sender/verify | org.app_group.update | { plusFriendId, token } — confirms the code; the sender key is stored on the app group |
DELETE | /sender | org.app_group.update | Unlinks the channel from this app group and clears the template mapping (the sender profile itself is kept — other app groups may share it) |
POST | /templates | org.app_group.update | { purpose } — registers the recommended text for that purpose as a new template, which starts Kakao review |
DELETE | /templates/{code} | org.app_group.update | Deletes a requested or rejected template |
PUT | / | org.app_group.update | Save { templateMap } (purpose → approved template code) |
PUT re-validates every code against the vendor’s template list: a code that is not approved is rejected with 400 TEMPLATE_NOT_APPROVED. The purpose key is otp; any other key answers 400 UNKNOWN_PURPOSE.
Errors you will see:
| Status | error | Meaning |
|---|---|---|
| 402 | ADDON_REQUIRED | Korean Package not active |
| 400 | INVALID_CHANNEL_ID / INVALID_PHONE / CATEGORY_REQUIRED | Registration form value rejected before calling the vendor |
| 400 | UNKNOWN_PURPOSE / TEMPLATE_NOT_APPROVED | The purpose key is not one Axowl knows, or the mapped template code is not approved |
| 404 | app_group_not_found | The app group does not exist in this organization |
| 409 | CHANNEL_REQUIRED | Link a channel before working with templates |
| 502 | VENDOR_REJECTED | The messaging vendor refused — code and detail carry its reason (Korean) |
| 503 | — | KakaoTalk messaging is not configured on this environment |
Audit events
Section titled “Audit events”appgroup.kakao.channel_linked · appgroup.kakao.channel_changed · appgroup.kakao.channel_unlinked
carry the channel id and template map. They appear in the organization’s audit timeline like other app-group changes.