Infobip Viber Business Messages
Reach customers on Viber through Infobip: send text, image, video or file messages with a call-to-action button and SMS failover, chat from a Viber Bot, manage approved Viber templates, then read delivery reports and message logs to see what landed and what was seen.
Connect this API to an AI agent Browse all specs
What you can do with Infobip Viber Business Messages via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| POST | /viber/2/messages |
sendViberMessages | Send Viber text, image, video or file messages (with button, SMS failover) |
| GET | /viber/2/reports |
getViberDeliveryReports | Get delivery reports for sent Viber business messages |
| GET | /viber/2/logs |
getViberMessageLogs | Search logs of sent Viber business messages by sender, number, status or date |
| GET | /viber/1/senders/{sender}/templates |
listViberTemplates | List Viber templates of a sender |
| POST | /viber/1/senders/{sender}/templates |
createViberTemplate | Create a Viber template and submit it for approval |
| GET | /viber/1/senders/{sender}/templates/{templateId} |
getViberTemplate | Get one Viber template and its approval status |
| PATCH | /viber/1/senders/{sender}/templates/{templateId} |
renameViberTemplate | Rename a Viber template |
| POST | /viber-bot/1/messages |
sendViberBotMessage | Send a message from a Viber Bot to a subscriber |
| GET | /viber-bot/1/reports |
getViberBotDeliveryReports | Get delivery reports for Viber Bot messages |
| GET | /viber-bot/1/logs |
getViberBotMessageLogs | Search logs of sent Viber Bot messages |
Authentication
infobipApiKey
API key — sent as the Authorization header
Infobip API key sent as Authorization: App <api-key> (the word App, a space, then the key).
How to get a credential
- Sign in to the Infobip portal (a free trial account works; trial messages can only go to your own verified number).
- Open Developer tools > API keys and click Create API key.
- Give it a name and select the scopes below, then copy the key.
- Copy your personal base URL from the same page (e.g.
xyz123.api.infobip.com) and set it as the serverbaseUrlvariable. - Business messages need a Viber sender registered on your Infobip account (Channels and Numbers > Viber); Viber Bot messages need a connected Viber Bot.
Permissions used
| API scope | Operations |
|---|---|
viber-bm:message:send (or message:send) |
sendViberMessages, getViberDeliveryReports |
viber-bm:logs:read |
getViberMessageLogs |
viber-bm:manage |
listViberTemplates, getViberTemplate, createViberTemplate, renameViberTemplate (and every business message operation) |
viber-bot:message:send (or message:send) |
sendViberBotMessage, getViberBotDeliveryReports |
viber-bot:logs:read |
getViberBotMessageLogs |
Common errors
- 401 Unauthorized: the header is not
App <key>, the key was revoked, or the base URL belongs to another account. - 403 Forbidden: the key lacks one of the scopes above, or the sender is not registered to your account.
- 400 Bad Request: unknown sender, a number not in international format (e.g.
441134960001), or content that does not match itstype. - 429 Too Many Requests: rate limit hit (logs allow 120 requests a minute, template reads 10 a second); wait and retry.
Store the value App <api-key> as a VX Agents credential (API key header) and never paste it into chat.
Usage guide
Setup
- Credential: an Infobip API key stored as
App <api-key>(see the authentication notes for scopes). - Set the server variable
baseUrlto your personal Infobip prefix (xyz123forhttps://xyz123.api.infobip.com). - Worth pinning: your Viber business sender name (used as
senderin messages and as the path value for templates) and, for bots, the bot's sender name.
Send a Viber message and follow it up
- For a template-based message, call
listViberTemplateswith your sender, thengetViberTemplateto check it is approved and see itsparams. - Draft the message:
sender,destinations[].to(international number without+, e.g.441134960001) andcontentwith atype(TEXT,IMAGE,VIDEO,FILE,QUICK_REPLY,TEMPLATE). Addoptions.smsFailoverso the text goes out by SMS if Viber cannot deliver. - Show the user the recipients and content and get a yes, then call
sendViberMessages. Keep the returnedbulkIdandmessageIds. - Check the outcome with
getViberDeliveryReports(bybulkIdormessageId) orgetViberMessageLogs(filter bysender,destination,generalStatus,sentSince/sentUntil). - For a Viber Bot conversation, send with
sendViberBotMessage(TEXT,IMAGE,VIDEO,FILE,URL,LOCATION) and check it withgetViberBotDeliveryReports/getViberBotMessageLogs. - New template:
createViberTemplate(category, body with{{param}}placeholders) submits it for approval;renameViberTemplateonly changes its name.
Good to know
- Every send costs money and reaches a real person: always confirm recipients and content first. Creating a template submits it to Viber for review, so confirm that too.
- Delivery reports are returned only once each: a second call with the same filter returns nothing new. Use the logs for history (they keep 48 hours of messages; use
useCursor=trueandcursorto page). - Times are ISO 8601 with offset, e.g.
2026-10-24T09:00:00.000+0000. - Bot keyboards and carousels are not in this spec (left out for size).
Source: Infobip Viber API reference (https://www.infobip.com/docs/api/channels/viber), checked 2026-10-24.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Infobip Viber Business Messages” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.