Our Blog

Developers’ guide to Routee’s Viber messaging API

Create a Click-to-call application using Routee’s Voice Conversation API

See how easy it is to create and execute a dial plan with Routee’s Voice conversation API

Access your Routee account information using PHP

SMS volume and pricing analytics using Java

Start messaging campaigns on Viber using Routee’s Viber API & Java

Perform Authentication using Java and Routee

How to use Routee contacts API and its endless custom labels using Java

Add Text Messaging to your software, using Javascript & Routee

Recruiting via SMS text messages; do it right!

The benefits of SMS workflows for eshops

Why use SMS campaigns in the Insurance Industry?

A brief intro to Number Lookup and the way to perform a query, using Java & Routee

5 email design trends to love in 2017!

A guide to Number Lookup: What it is and how to use it

Learn how easy it is to validate a phone number through PHP & Routee

Create custom forms into your WordPress website & transfer all data to your messaging platform automatically. It’s that easy!

How Number Validation & Number Lookup can ensure the phone number she gave you is indeed her number!

Holiday season is your business season. Contact your customers & make the most out of it

Vacation guide: Bring a hundred books to the beach. Stop texting and read!

Get started with number validation: What it is and how you can use it to secure your app

Αutomated Marketing: the only way to go

The art of SMS: How to create a compelling message using just 160 characters

Enable your Ruby web app with text messaging

Omni-Channel Marketing: the key to marketing success

Need to know all about Two-factor authentication? Be our guest

Tired of hiding your single status? Meet your… solution!

Text & Voice Messaging, an unbeatable combination

Click to Call aka Time to get “personal”

Send Voice Messages, using PHP & Routee

Voice Messaging: Tell me more, tell me more…

How to authenticate your users, using PHP & Routee

What’s the fuss about Two-Factor Authentication?

Segment your customers & reach them with SMS & email. Whom, with what?

5 successful email campaigns. How did they stand out?

OAUTH 2.0 fundamentals. How the protocol improves Routee

Advertising vibe on Viber

Running a successful SMS campaign in 8 steps

Send bulk SMS campaigns with PHP and Routee

Send SMS with Java and Routee

Send SMS with PHP and Routee

SMS – Is that all folks?

Very excited & vitalized by our double participation at MWC and 4YFN 2017!

Our must-attend workshop at 4YFN!

Routee Bronze Partner at 4YFN2017

How Developers can Prepare for the Industrial Internet of Things

APIs: From Connected Home Into Programmable Platform

Routee @ The Next Web Conference

Routee @ Apps World Germany

Google opens access to its speech recognition API

Choosing the right communication channel

Google launches Cloud Vision API

8 Tips to Create Omni-Channel Marketing Strategies

Developers’ guide to Routee’s Viber messaging API

Viber is one of the largest 3rd party communication applications, counting already more than 260 million active users per month. Can you think of a better communication channel so as to reach your audience straight to their mobile devices, using rich messaging?
Our Viber API lets you choose from 3 message layouts:
• Plain Text
• Image only
• Advanced message including text, image and a button that lead your audience to a predefined website.

The body of the messages can be up to 1.000 characters long, while the length of the button, if there is any, up to 20 characters.

Message Statuses
After sending your campaigns we provide you with detailed status for every Viber message. Following you may find the available statuses, including a short description.

Viber message status Description
Delivered The message was successfully delivered to the recipient.
Undelivered The message was not delivered to the recipient. Undelivered messages are not charged.
Seen The message was seen by the recipient.
Expired The validity period of the message expired as the message was not able to be delivered within a specific, predefined timeframe.
Failed The message failed to be accepted by us. Failed messages are not charged.
Queued The message could not be delivered but we are resending it. The message is not charged until we deliver it.
Unsent The message was not sent due to insufficient balance. Unsent messages are not charged.


Inbound messages

With Viber messaging you can receive inbound messages that will be delivered to the inboundUrl that you define in the body of your request.

Following you may find the form of what your service will receive:

<span style="font-size: 12pt;">{
  "from": string,
  "to": string,
  "message": string,
  "sentDate": string,
  "campaignName": string,
  "campaignTrackingId": string,
  "referenceTrackingId": string,
  "direction": string

The parameters are:

KEY Description
from The sender of the inbound message
to The sender ID you used in your send out
message The body of the inbound message
sentDate The date the inbound message was sent, in ISO format
campaignName The name of the campaign
campaignTrackingId The tracking ID of the outbound campaign
referenceTrackingId The tracking ID of the outbound message that this inbound message refers to
direction The direction of the received message, so it will be “Inbound”

Here is a real example:

<span style="font-size: 12pt;">{
  "from": "+3069xxxxxxxx",
  "to": "your_sender_id",
  "message": "This is the body of the inbound message",
  "sentDate": "2017-08-11T12:36:45.393Z",
  "campaignName": "NameOfCampaign",
  "campaignTrackingId": "62d4a3cc-6f32-4ba2-b99a-b661fb27fdd5",
  "referenceTrackingId": "dcfa62e1-13af-459a-a6ca-f15727a0b830",
  "direction": "Inbound"

Callback (Webhook)

Through Routee’s API you can ask and receive notifications for every status change.

Following you may find a sample of what you will receive in your callback service for individual messages:

<span style="font-size: 12pt;">{
  "trackingId": "string",
  "campaignTrackingId": "string",
  "to": "string",
  "from": "string",
  "groups": ["string"],
  "country": "string",
  "status": {
    "name": "string",
    "updatedDate": "string"
  "body": {
      "text": "string",
      "iosFallbackText": "string",
      "imageURL": "string",
      "viberAction": {
           "caption": "string",
           "targetUrl": "string"
  "ttl": integer,
  "inboundUrl": "string",
  "applicationName": "string",
  "price": double,
  "direction": "string",
  "originatingService": "Viber",
  "createdAt": "string"

The parameters of the string are:

KEY Description
trackingId The tracking ID of the message
campaignTrackingId The tracking ID of the campaign
to The phone numbers where the message will be send to
from The sender ID of the message
groups All the contact groups that this contact is included in
status.name The status name of the message
status.updateDate The date of the last status update of the message
body.text The text of the message
body.iosFallbackText The alternative message that will be sent after the expiration period of the message
body.imageURL The url of the image of the message
body.viberAction.caption The text of the button inside the message
body.viberAction.targetUrl The action that will be executed when the recipient taps the button
ttl The time range until the message is considered valid. TTL range is set to 14 days by default but it can be altered
inboundUrl The notification callback information for the inbound message
applicationName The name of the application that sent the message
price The cost of the message
direction The direction of the message
originatingService The service that sent the message

Our website uses cookies to enhance your user experience. By using this website, you agree with our use of cookies policy.