기업회원 신청 서류 안내
신청자 구분에 따라 재직증명서 또는 위임장을 함께 제출해 주세요.
신청자 구분에 따라 재직증명서 또는 위임장을 함께 제출해 주세요.
A PRACTICAL GUIDE
Send Korean SMS (90 bytes), LMS (long text) and MMS (with images) through Sendgo. Type selection, byte counting, verification-code patterns and advertising rules.
POST /api/v2/messages/send이 가이드는 아직 번역되지 않아 English 문서를 표시합니다.
Text messages need no template approval, so you can compose the body in code. That makes them the right tool for one-off notices and verification codes that no Alimtalk template covers.
senderKey)No Kakao sender profile is needed.
| Type | Body limit | Subject | Attachment | Use for |
|---|---|---|---|---|
| SMS | 90 bytes (~45 Korean chars) | ❌ | ❌ | Verification codes, short alerts |
| LMS | 2,000 bytes | ✅ | ❌ | Notices, long announcements |
| MMS | 2,000 bytes | ✅ | Images | Event banners, coupon images |
Byte counting: Korean characters are 2 bytes, Latin/digits/symbols 1, line breaks 1–2. If the body length varies at runtime, either use LMS from the start or branch on the measured length — going over 90 bytes means it cannot be sent as SMS.
// SMS
await sendgo.sms.sendSms({
content: '[Acme] Verification code: 123456 (valid 5 minutes)',
contacts: [{ contact: '01012345678' }],
});
// LMS — long text with a subject
await sendgo.sms.sendLms({
subject: '[Notice] Scheduled maintenance',
content: `Hello,
Maintenance is scheduled.
- When: 2026-09-01 02:00 - 06:00 KST
- Scope: all services
Sorry for the inconvenience.`,
contacts: [{ contact: '01012345678' }],
});
// MMS — with an image
await sendgo.sms.sendMms({
subject: '[Event] September deals',
content: 'Check out this month\'s offers!',
contacts: [{ contact: '01012345678' }],
});
client.sms.send_sms(
content="[Acme] Verification code: 123456 (valid 5 minutes)",
contacts=[{"contact": "01012345678"}],
)
client.sms.send_lms(
subject="[Notice] Scheduled maintenance",
content="Maintenance is scheduled for 2026-09-01 02:00-06:00 KST.",
contacts=[{"contact": "01012345678"}],
)
client.sms.send_mms(
subject="[Event] September deals",
content="Check out this month's offers!",
contacts=[{"contact": "01012345678"}],
)
<?php
$sendgo->sms->sendSms([
'content' => '[Acme] Verification code: 123456 (valid 5 minutes)',
'contacts' => [['contact' => '01012345678']],
]);
$sendgo->sms->sendLms([
'subject' => '[Notice] Scheduled maintenance',
'content' => "Maintenance is scheduled.\n\nWhen: 2026-09-01 02:00-06:00 KST",
'contacts' => [['contact' => '01012345678']],
]);
In Laravel, either inject Sendgo or use app(Sendgo::class)->sms->sendSms([...]).
curl -X POST https://sendgo.io/api/v2/messages/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"campaignType": "MESSAGE",
"messageType": "SMS",
"scheduleType": "DIRECTLY",
"content": "Verification code: 123456",
"contacts": [{ "contact": "01012345678" }],
"senderKey": "your_sms_sender_key"
}'
Switch messageType to LMS or MMS; both also take a subject.
The most common use, and the one with the sharpest failure mode.
const code = String(Math.floor(100000 + Math.random() * 900000));
await redis.setex(`verify:${phone}`, 300, code); // 5 minute expiry
try {
await sendgo.sms.sendSms({
content: `[Acme] Verification code: ${code} (valid 5 minutes)`,
contacts: [{ contact: phone }],
});
} catch (error) {
// Do not swallow this — the user is waiting for a message that will never arrive.
throw new Error('Could not send the verification code. Please try again.');
}
Promotional messages are regulated under the Network Act.
(광고)[Brand] Autumn sale, up to 50% off
...
Free opt-out 080-000-0000
(광고) at the very start of the bodyVerification codes and order notifications are informational and exempt.
일반 발송 승인이 완료된 이메일 서비스입니다. 발신 인증과 앱의 발송 가능 상태를 확인하고 SMTP, HTTP API와 자동화 수신함을 연동하세요.
Send Kakao Alimtalk with an approved template code. Runnable code for Laravel, Node.js, Python, PHP, Java, Go, Ruby and .NET, plus every required field and why sends fail.
Send Brand Messages to channel friends, non-friends, or every consenting friend at once. How targeting splits the request path, and when to keep using the Friendtalk endpoint.
Use replaceSms so a text message goes out when the Alimtalk cannot be delivered. Required fields, cost implications, and the mistake that silently sends nothing.
Send one template to many recipients with different values each, in batches. Batch sizing, partial failures, queue patterns and the data hygiene that prevents most incidents.
Send at a specific time with scheduleType SCHEDULED. Timestamp format, the KST timezone trap, and how scheduling interacts with the advertising night ban.