Make Viber a key channel for reaching customers across Europe. Connect your backend, CRM, or e-commerce platform to MessageFlow’s Viber API and send rich media messages at a fraction of the cost of SMS. Receive webhook updates when messages are delivered, viewed, or expire.
Launch rich media campaigns directly from your systems
Active Partner
1.2+ B
active users across
190 countries
200
recipients per
Viber API call
Helping 140,000 brands turn communication into business results
Bring rich media, automation, and control together with
Viber API
Use Viber as an engaging, cost-effective communication channel, particularly across Central and Eastern Europe. Connect your backend, CRM, or eCommerce platform via Viber API, trigger messages based on business events, and scale your communication without adding a separate setup for every new channel.
Automate Viber messaging without giving up control
Connect Viber API to your backend, CRM, or eCommerce platform and trigger messages based on events in your own systems. Receive status updates via webhooks, monitor sends in the MessageFlow dashboard, and quickly see what was sent, when, and to whom. Combine API-driven automation with clear visibility for both business and technical teams.
Trigger messages based on business events
Automate messaging around events your systems already track. Send abandoned cart reminders, notify customers about delivery or payment status changes, and tailor the copy, visuals, and CTA to each stage of the customer journey.
Find and verify messages quickly
Search messages by time range, recipient, externalId, or sender name. See when a message was sent, check its current status, and confirm when it was viewed. This makes it easier to investigate customer inquiries and link them to the right event or transaction in your system.
See exactly what each recipient received
Use Visual Audit Logs, a unique MessageFlow feature, to review not only message status but also the exact content, image, CTA, and URL sent to the recipient. Resolve customer inquiries faster without involving developers or cross-checking data across multiple systems.
Track message status with webhooks
Receive real-time updates when messages are delivered, seen, or expired, including the time they were viewed. Pass these events to your CRM, order management system, or application to update workflows or trigger follow-up actions.
Export data for further analysis
Export logs as CSV files and use them for reporting, operational analysis, data archiving, or audits.
Plan your Viber API integration with our team
Talk to our team about connecting Viber API to your existing data, events, and workflows. Together, we will design an implementation around your business use case and technical setup.
Add Viber API to your communication stack
Extend your existing workflows with another messaging channel without rebuilding your entire setup. Connect Viber API to your backend, CRM, or eCommerce platform with clear documentation, ready-to-use code examples, and support from MessageFlow throughout the implementation process.
Integrate Viber API with your tech stack
Use code examples for Python, PHP, Node.js, Java, Go, or C# and adapt the integration to your existing environment. Switch between languages in an interactive code block and get your first Viber API requests up and running faster.
Work with clear, practical documentation
Explore Viber message parameters, data types, and usage examples. Configure content, images, and CTAs with confidence, and build your integration without having to guess how individual request elements should be structured.
Get your sending environment ready
Complete the required setup steps, including Viber sender registration and approval, as well as the necessary configuration in your own environment. The MessageFlow team can help you prepare the channel for secure, reliable communication at scale.
import requests
url = "https://api.messageflow.com/v2.1/viber"
payload = {
"receivers": ["48111222333", "48111222444"],
"senderName": "MyCompany",
"externalId": "campaign_20250902_123",
"content": {
"text": "Hello! Check out our latest offer.",
"image": "https://example.com/image.jpg",
"action": {
"title": "Learn More",
"targetUrl": "https://example.com/offer"
}
}
}
headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "123",
"Application-Key": "123"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = 'https://api.messageflow.com/v2.1/viber';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: '123',
'Application-Key': '123'
},
body: '{"receivers":["48111222333","48111222444"],"senderName":"MyCompany","externalId":"campaign_20250902_123","content":{"text":"Hello! Check out our latest offer.","image":"https://example.com/image.jpg","action":{"title":"Learn More","targetUrl":"https://example.com/offer"}}}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const request = require('request');
const options = {
method: 'POST',
url: 'https://api.messageflow.com/v2.1/viber',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: '123',
'Application-Key': '123'
},
body: {
receivers: ['48111222333', '48111222444'],
senderName: 'MyCompany',
externalId: 'campaign_20250902_123',
content: {
text: 'Hello! Check out our latest offer.',
image: 'https://example.com/image.jpg',
action: {title: 'Learn More', targetUrl: 'https://example.com/offer'}
}
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.messageflow.com/v2.1/viber",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'receivers' => [
'48111222333',
'48111222444'
],
'senderName' => 'MyCompany',
'externalId' => 'campaign_20250902_123',
'content' => [
'text' => 'Hello! Check out our latest offer.',
'image' => 'https://example.com/image.jpg',
'action' => [
'title' => 'Learn More',
'targetUrl' => 'https://example.com/offer'
]
]
]),
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Application-Key: 123",
"Authorization: 123",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.messageflow.com/v2.1/viber"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "123")
.header("Application-Key", "123")
.method("POST", HttpRequest.BodyPublishers.ofString("{\n \"receivers\": [\n \"48111222333\",\n \"48111222444\"\n ],\n \"senderName\": \"MyCompany\",\n \"externalId\": \"campaign_20250902_123\",\n \"content\": {\n \"text\": \"Hello! Check out our latest offer.\",\n \"image\": \"https://example.com/image.jpg\",\n \"action\": {\n \"title\": \"Learn More\",\n \"targetUrl\": \"https://example.com/offer\"\n }\n }\n}"))
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Use Viber API across key business processes
Automate marketing and transactional communication directly from your own systems. Tailor rich media, CTAs, and message timing to each use case, industry, and stage of the customer journey.
Combine Viber API with other communication channels
Build cross-channel journeys around the data and events already available in your systems. Combine Viber with SMS, email, RCS, and Mobile Push, and choose the right role for each channel based on the market, audience, and communication goal.
Use Viber when rich media, CTAs, and cost efficiency matter. Add SMS as a complementary channel or fallback based on your own business logic to increase the chances of reaching each recipient.
Learn more about SMS APIFollow up an email with a Viber message when you want to bring an important offer or update back to the customer’s attention. Use events from your own systems to trigger the next message at the right moment.
Learn more about Email APIUse the channel that best fits the market and is available to each recipient. Reach customers through Viber, or use RCS for rich, interactive messages delivered directly in the native messaging application.
Learn more about RCS APICombine Viber with push notifications in journeys triggered by user activity. Use Mobile Push for fast, direct communication and Viber when you need a richer format with more space for content, visuals, and CTAs.
Learn more about Mobile Push API
Use Viber in the way that works best for your team
Viber can support a wide range of communication scenarios – from marketing campaigns to automated messaging triggered by your CRM, eCommerce platform, or backend. Explore the option that best fits your team’s needs.
Viber Business Messages for business teams
See how Viber can support marketing campaigns, transactional messaging, and customer communication. Explore rich media, verified business profiles, and high-volume messaging.
Viber API for technical teams
Connect Viber to your backend, CRM, or eCommerce platform and trigger messages directly from your own systems.
Frequently asked questions about Viber API
MessageFlow Viber API lets you send Viber Business Messages programmatically from your backend, CRM, eCommerce platform, or other systems. Using the REST API, you can send text, images, and CTAs, and receive message status updates via webhooks.
The API supports four message formats: text, image, text with a CTA button, and text with an image and CTA. Detailed requirements for individual fields and formats are available in the documentation.
You can include up to 200 recipients in a single API call. This makes it possible to send messages to groups of recipients without making a separate request for each phone number.
Webhooks return DELIVERED, OPENED, and EXPIRED events, allowing your system to respond when a message is delivered, viewed, or expires.
externalId lets you attach an identifier from your own system to each send, such as an order ID, booking ID, or campaign ID. This makes it easier to match MessageFlow events and logs with the relevant business data.
Yes. Visual Audit Logs in the Viber API dashboard let you review the message content, image, and CTA button details that were actually sent. This makes it easier for your team to verify a specific message without relying solely on technical API logs.
Your system can call Viber API in response to a selected event, such as a new order, a delivery status change, or an event recorded in your CRM. Message statuses can then be returned via webhooks and used to update the next steps in the workflow. Implementation details are available in the developer documentation.
The currently recommended integration uses API v2.1. Details of endpoints, parameters, authentication, and response handling are available in the latest developer documentation.