Hypereal AIHypereal AI
Video StudioVideo AgentMedia APICoding LLMsMCP
비디오 APISeedance 2.0KlingVeo 3.1Gemini Omni VideoHappyHorse 1.0모든 모델 →
이미지 APIGPT Image 2Nano BananaFLUXMidjourney Alternative모든 모델 →
LLM APIClaude OpusClaude SonnetClaude FableGPT-5.5GPT-5.5 ProGemini 3 ProGemini 3.5 FastGemini 3.5 ThinkingDeepSeek모든 모델 →
요금
API ReferenceCookbook
엔터프라이즈Affiliate회사 소개변경 로그문의

요금

아티클 목록으로
APIFreeMessaging

WhatsApp Business API 무료로 사용하는 방법 (2026년)

초기 비용 없이 프로그래밍 방식으로 메시지 전송

Hypereal AI TeamHypereal AI Team
11 min read
2026년 2월 6일
100개 이상의 AI 모델, 하나의 API

Hypereal로 구축 시작하기

단일 API를 통해 Kling, Flux, Sora, Veo 등에 액세스하세요. 무료 크레딧으로 시작하고 수백만으로 확장하세요.

무료 API 키 받기문서 보기

신용카드 불필요 • 10만 명 이상의 개발자 • 엔터프라이즈 지원

WhatsApp Business API 무료 사용 방법 (2026)

WhatsApp Business API를 사용하면 프로그래밍 방식으로 메시지를 송수신하고, 고객 지원을 자동화하며, 챗봇을 구축할 수 있습니다. 이전에는 이 API에 액세스하려면 고가의 Business Solution Provider (BSP)가 필요했습니다. 하지만 2026년 현재 Meta의 Cloud API를 통해 무료로 시작할 수 있게 되었습니다. 이 가이드에서는 실제 작동하는 코드 예제와 함께 전체 설정 과정을 안내합니다.

WhatsApp Business API: 무료 등급(Free Tier) 개요

Meta는 WhatsApp Business Cloud API에 대해 다음과 같은 제한 사항이 포함된 무료 등급을 제공합니다.

기능 무료 등급 유료 등급
서비스 대화 (사용자 시작) 월 1,000건 무료 대화당 $0.005-0.08
마케팅 대화 포함되지 않음 대화당 $0.01-0.15
테스트 전화번호 테스트 번호 1개 포함 무제한 인증 번호
메시지 템플릿 250개 템플릿 250개 템플릿
미디어 메시지 지원됨 지원됨
Webhook 알림 지원됨 지원됨
속도 제한 (Rate limit) 80 메시지/초 500+ 메시지/초

월 1,000건의 무료 서비스 대화는 매월 1일에 초기화됩니다. 서비스 대화는 사용자가 먼저 메시지를 보낸 경우를 의미하며, 각 대화 창은 24시간 동안 유지됩니다.

사전 요구 사항

시작하기 전에 다음이 필요합니다.

  • Meta (Facebook) 계정
  • Meta Business 계정 (무료 생성 가능)
  • 인증용 SMS 또는 음성 전화를 받을 수 있는 전화번호
  • REST API에 대한 기본 지식

단계별 설정 방법

1단계: Meta Developer 계정 생성

1. https://developers.facebook.com 접속
2. "시작하기" 또는 "내 앱" 클릭
3. Facebook 계정으로 로그인
4. 개발자 약관 동의
5. 전화번호로 계정 인증

2단계: 새 앱 생성

1. 개발자 대시보드에서 "앱 만들기" 클릭
2. 앱 유형으로 "Business" 선택
3. 앱 이름 입력 (예: "My WhatsApp Bot")
4. Meta Business 계정 선택 (또는 새로 생성)
5. "앱 만들기" 클릭

3단계: 앱에 WhatsApp 추가

1. 앱 대시보드에서 "제품 추가"를 찾음
2. WhatsApp 카드의 "설정" 클릭
3. 자동으로 테스트용 WhatsApp Business Account가 생성됨
4. 테스트 전화번호와 임시 액세스 토큰(Access Token) 확인 가능

4단계: 액세스 토큰 가져오기

대시보드의 임시 토큰은 24시간 후에 만료됩니다. 실제 운영을 위해서는 영구적인 System User 토큰을 생성해야 합니다.

1. Meta Business Suite > 설정 > 비즈니스 설정 이동
2. 시스템 사용자(System Users)로 이동
3. "추가"를 클릭하여 새 시스템 사용자 생성
4. 역할을 "관리자(Admin)"로 설정
5. "토큰 생성" 클릭
6. WhatsApp 앱 선택
7. 다음 권한을 부여:
   - whatsapp_business_management
   - whatsapp_business_messaging
8. 생성된 토큰을 안전하게 복사하여 저장

5단계: 테스트 수신자 추가

메시지를 보내기 전에 테스트 목록에 수신자 전화번호를 추가해야 합니다.

1. 앱 대시보드의 WhatsApp 섹션으로 이동
2. "API 설정" 클릭
3. "메시지 전송" 아래의 "전화번호 목록 관리" 클릭
4. 테스트 메시지를 보낼 전화번호 추가
5. 각 수신자는 인증 메시지에 답장하여 확인해야 함

첫 메시지 보내기

cURL 사용 예시

curl -X POST \
  "https://graph.facebook.com/v21.0/YOUR_PHONE_NUMBER_ID/messages" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "1234567890",
    "type": "text",
    "text": {
      "body": "WhatsApp Business API에서 보내는 인사말입니다!"
    }
  }'

Node.js 사용 예시

const axios = require("axios");

const PHONE_NUMBER_ID = "your_phone_number_id";
const ACCESS_TOKEN = "your_access_token";

async function sendWhatsAppMessage(to, message) {
  try {
    const response = await axios.post(
      `https://graph.facebook.com/v21.0/${PHONE_NUMBER_ID}/messages`,
      {
        messaging_product: "whatsapp",
        to: to,
        type: "text",
        text: { body: message }
      },
      {
        headers: {
          Authorization: `Bearer ${ACCESS_TOKEN}`,
          "Content-Type": "application/json"
        }
      }
    );

    console.log("Message sent:", response.data);
    return response.data;
  } catch (error) {
    console.error("Error:", error.response?.data || error.message);
    throw error;
  }
}

// 메시지 전송
sendWhatsAppMessage("1234567890", "Node.js에서 보내는 인사말!");

Python 사용 예시

import requests

PHONE_NUMBER_ID = "your_phone_number_id"
ACCESS_TOKEN = "your_access_token"

def send_whatsapp_message(to: str, message: str):
    url = f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages"

    headers = {
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json"
    }

    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "text",
        "text": {"body": message}
    }

    response = requests.post(url, json=payload, headers=headers)
    response.raise_for_status()
    print("Message sent:", response.json())
    return response.json()

# 메시지 전송
send_whatsapp_message("1234567890", "Python에서 보내는 인사말!")

리치 메시지(Rich Messages) 전송

이미지 메시지

def send_image(to: str, image_url: str, caption: str = ""):
    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "image",
        "image": {
            "link": image_url,
            "caption": caption
        }
    }

    response = requests.post(
        f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages",
        json=payload,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    )
    return response.json()

대화형 버튼 메시지

def send_buttons(to: str, body_text: str, buttons: list):
    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "interactive",
        "interactive": {
            "type": "button",
            "body": {"text": body_text},
            "action": {
                "buttons": [
                    {
                        "type": "reply",
                        "reply": {"id": btn["id"], "title": btn["title"]}
                    }
                    for btn in buttons
                ]
            }
        }
    }

    response = requests.post(
        f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages",
        json=payload,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    )
    return response.json()

# 버튼 메시지 전송
send_buttons(
    "1234567890",
    "오늘 무엇을 도와드릴까요?",
    [
        {"id": "support", "title": "지원 받기"},
        {"id": "pricing", "title": "가격 확인"},
        {"id": "demo", "title": "데모 예약"}
    ]
)

템플릿 메시지 (아웃바운드 알림용)

사용자에게 먼저 메시지를 보내려면(24시간 윈도우 밖에서), 승인된 템플릿을 사용해야 합니다.

def send_template(to: str, template_name: str, language: str = "ko_KR"):
    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "template",
        "template": {
            "name": template_name,
            "language": {"code": language},
            "components": [
                {
                    "type": "body",
                    "parameters": [
                        {"type": "text", "text": "홍길동님"},
                        {"type": "text", "text": "주문 번호 #12345"}
                    ]
                }
            ]
        }
    }

    response = requests.post(
        f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages",
        json=payload,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    )
    return response.json()

Webhooks 설정

수신 메시지를 받으려면 Webhook 엔드포인트를 구성해야 합니다.

Express.js Webhook 서버

const express = require("express");
const app = express();
app.use(express.json());

const VERIFY_TOKEN = "your_custom_verify_token";

// Webhook 검증 (GET)
app.get("/webhook", (req, res) => {
  const mode = req.query["hub.mode"];
  const token = req.query["hub.verify_token"];
  const challenge = req.query["hub.challenge"];

  if (mode === "subscribe" && token === VERIFY_TOKEN) {
    console.log("Webhook verified");
    res.status(200).send(challenge);
  } else {
    res.sendStatus(403);
  }
});

// 메시지 수신 (POST)
app.post("/webhook", (req, res) => {
  const body = req.body;

  if (body.object === "whatsapp_business_account") {
    body.entry?.forEach((entry) => {
      entry.changes?.forEach((change) => {
        const messages = change.value?.messages;
        if (messages) {
          messages.forEach((message) => {
            console.log("From:", message.from);
            console.log("Type:", message.type);
            if (message.type === "text") {
              console.log("Text:", message.text.body);
            }
          });
        }
      });
    });

    res.sendStatus(200);
  } else {
    res.sendStatus(404);
  }
});

app.listen(3000, () => {
  console.log("Webhook server running on port 3000");
});

로컬 서버 노출

개발 단계에서는 터널링 서비스를 사용하여 로컬 Webhook을 외부에 노출합니다.

# ngrok 사용 시
ngrok http 3000

# Cloudflare Tunnel 사용 시
cloudflared tunnel --url http://localhost:3000

그 후 Meta 앱 대시보드의 WhatsApp > 설정 > Webhook URL에 해당 공개 URL을 등록합니다.

무료 대안 및 보완책

무료 등급의 제한이 너무 엄격하다면 다음 옵션을 고려해 보세요.

옵션 무료 메시지 특징
Meta Cloud API (공식) 월 1,000건 서비스 대화 소규모 프로젝트에 최적
Twilio WhatsApp Sandbox 개발 중 무료 Twilio 계정 필요, 운영 시 유료
WhatsApp Business App (수동) 무제한 API 액세스 권한 없음, 수동 전송 전용
WATI 무료 체험 14일 체험 대시보드와 챗봇 빌더를 제공하는 BSP

일반적인 오류 및 해결 방법

오류 코드 메시지 해결 방법
131030 "Recipient phone number not in allowed list" 수신자 전화번호를 테스트 목록에 추가하세요.
131047 "Re-engagement message" 첫 연락에는 승인된 템플릿을 사용해야 합니다.
100 "Invalid parameter" 전화번호 형식 확인 (국가 코드 포함, +나 공백 제외).
190 "Access token expired" 새 System User 토큰을 생성하세요.
368 "Temporarily blocked for policies" Meta의 커머스 및 메시지 정책을 검토하세요.

결론

WhatsApp Business API는 Meta Cloud API를 통해 월 1,000건의 서비스 대화를 무료로 제공하며, 누구나 접근 가능합니다. 이는 소규모 기업, 프로토타입 또는 개인 프로젝트에 충분한 수량입니다. Meta 개발자 포털을 통한 설정 과정은 약 30분 정도 소요되며, 이후에는 텍스트, 미디어, 대화형 메시지를 프로그래밍 방식으로 보낼 수 있습니다.

개인화된 제품 데모 비디오나 AI 아바타 인사말과 같은 AI 기반 비디오 콘텐츠로 WhatsApp 커뮤니케이션을 강화하려는 기업의 경우, Hypereal AI는 WhatsApp 리치 미디어 메시지와 잘 어울리는 비디오 생성 및 아바타 제작을 위한 합리적인 API를 제공합니다.

관련 아티클

무료 Text-to-Speech API 사용법: 2026년 최고의 TTS API 추천

7 min read

OpenAI API Key 무료로 받는 방법: 3가지 방법 (2026)

12 min read

Claude Code API: Hypereal과 함께 Claude Code 사용

7 min read

On this page

  • WhatsApp Business API 무료 사용 방법 (2026)
  • WhatsApp Business API: 무료 등급(Free Tier) 개요
  • 사전 요구 사항
  • 단계별 설정 방법
  • 1단계: Meta Developer 계정 생성
  • 2단계: 새 앱 생성
  • 3단계: 앱에 WhatsApp 추가
  • 4단계: 액세스 토큰 가져오기
  • 5단계: 테스트 수신자 추가
  • 첫 메시지 보내기
  • cURL 사용 예시
  • Node.js 사용 예시
  • Python 사용 예시
  • 리치 메시지(Rich Messages) 전송
  • 이미지 메시지
  • 대화형 버튼 메시지
  • 템플릿 메시지 (아웃바운드 알림용)
  • Webhooks 설정
  • Express.js Webhook 서버
  • 로컬 서버 노출
  • 무료 대안 및 보완책
  • 일반적인 오류 및 해결 방법
  • 결론
Desktop agent

Download Hypereal Agent

Run a local AI media workspace for image generation, video prompts, model selection, credit tracking, and saved artifacts.

MacWindows
v0.1.2Requires a hypereal.cloud API keyRelease manifest
Hypereal Agent desktop app screenshot

지금 바로 개발을 시작하세요

지금 개발 시작
LogoHypereal AI
모든 시스템 정상
LLM API
  • Hypereal SDK
  • MCP Server
  • Enterprise API
  • All LLM Models
  • Claude Fable 5
  • Claude Opus 4.7
  • Claude Sonnet 4.6
  • GPT-5.5
  • Claude Haiku 4.5
  • GPT-5.5 Pro
  • Gemini 3.1 Pro Preview
  • Gemini 3.5 Thinking
  • Gemini 3.5 Fast
  • DeepSeek V4 Pro
  • Kimi K2.6
  • GLM 5.2
  • Claude API in China
  • OpenAI API in China
AI API
  • AI API Overview
  • Seedance 2.0 API
  • Kling 3.0 API
  • Veo 3.1 API
  • FLUX API
  • GPT Image 2 API
  • vs WaveSpeed
  • vs fal.ai
  • vs Replicate
  • vs KIE.ai
  • vs OpenRouter
  • vs Together AI
  • vs SiliconFlow
  • Midjourney Alternative
  • Higgsfield Alternative
  • OpenRouter Alternative
비디오 모델
  • Google Veo 3.1 API
  • Kling 3.0 API
  • Kling O3 Pro API
  • Seedance 2.0 API
  • HappyHorse 1.0 API
  • WAN 2.7 API
  • WAN Video API
  • Grok Video API
  • Hunyuan Video API
  • PixVerse V6 API
  • Pika Video API
  • Luma Dream Machine API
  • MiniMax Video API
  • Vidu Video API
  • Gemini Omni Video API
이미지 모델
  • NanoBanana 2 API
  • FLUX 2 API
  • GPT Image 1 API
  • Grok Image API
  • SeeDream V5 API
  • Imagen 4 API
  • Ideogram API
  • Recraft API
  • DALL-E 3 API
  • Stable Diffusion API
  • Gemini Image API
도구
  • Face Swap API
  • Video Face Swap API
  • Virtual Try-On API
  • AI Talking Avatar API
  • Lip Sync API
  • OmniHuman Avatar API
  • Tripo3D H3.1 API
  • ElevenLabs TTS API
  • Fish Audio TTS API
  • Whisper STT API
  • Lyria Music API
생성기
  • Video Agent
  • AI 이미지 생성기
  • AI 비디오 생성기
컬렉션
  • 최고 비디오 모델
  • 최고 이미지 모델
  • Seedance 2.0
  • WAN 2.7
  • Qwen Image 2
  • Grok AI
  • Seedance 1.5
  • 모션 컨트롤
  • 콘텐츠 감지
  • 객체 감지
회사
  • 소개
  • 문서
  • Hypereal SDK
  • Cookbook
  • 변경 로그
  • 블로그
  • 연락처
  • 자주 묻는 질문
  • 로드맵
  • 엔터프라이즈
  • 제휴 프로그램
  • Be a Creator
  • 개발자 프로그램
법률
  • 개인정보처리방침
  • 이용약관
  • 환불 정책
  • 쿠키 정책
  • 가격
  • 모든 모델
  • 사이트맵
  • Status
© 저작권 2026. 모든 권리 보유.
TwitterGitHubLinkedInYouTubeEmail