Receive WhatsApp Media Messages Using Ruby


This guide shows how to receive WhatsApp text messages on a phone number registered against your WhatsApp Business Account. Typical use cases for receiving messages include customer support, opt-in and opt-out messages, and other customer interactions.

You can start receiving WhatsApp text messages using our APIs. Follow these instructions.


To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time using Plivo APIs, follow our instructions to set up a Ruby development environment.

To receive incoming messages, you must have an onboarded WhatsApp account with inbound-capable numbers registered against it. If a number is in connected state, it can receive incoming messages.

Create a Server to receive messages

Create a file called WhatsappMessagereceive.rb and paste into it this code.

"include Plivo
include Plivo::XML

class PlivoController < ApplicationController
def inbound
    from_number = params[:From]
      to_number = params[:To]
      text = params[:Body]
      media = params[:Media0]
      puts ""Message received - From: #{from_number}, To: #{to_number}, Media Attachment: #{media}""

      if text
        puts "Text: #{text}"

Configure a webhook URL in your WhatsApp Business Account

Add or update a webhook URL against a WhatsApp Business Account. Once you’ve done this, you should be able to receive incoming messages.


Send a text message to the Plivo number you specified using any phone.