> ## Documentation Index
> Fetch the complete documentation index at: https://plivo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Recieve SMS Messages

> Handle incoming SMS text messages on a Plivo phone number

## Overview

This guide shows how to receive SMS text messages on a Plivo phone number. Typical use cases for receiving messages include opt-in and opt-out messages and other customer interactions.

You can start receiving SMS messages either by using our PHLO visual workflow builder or our APIs. Follow the instructions in one of the tabs below.

<Tabs>
  <Tab title="Using API">
    Here’s how to use Plivo APIs to receive SMS text messages.

    <h2 id="api-how-it-works">How it works</h2>

    <Frame>
      <img src="https://mintcdn.com/plivo/7-odxN9fJG_Dg1dt/images/receive-sms-api.jpg?fit=max&auto=format&n=7-odxN9fJG_Dg1dt&q=85&s=43b2a5d94fae3d8c539bf9941938f800" alt="Receive SMS" width="1446" height="774" data-path="images/receive-sms-api.jpg" />
    </Frame>

    <h2 id="api-prerequisites">Prerequisites</h2>

    To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. To receive incoming messages, you must have a Plivo phone number that supports SMS; you can rent numbers from the [Numbers](https://cx.plivo.com/phone-numbers) page of the Plivo console or by using the [Numbers API](/docs/numbers/). If this is your first time using Plivo APIs, follow our instructions to set up a .NET development environment.

    <h2 id="api-create-an-mvc-controller-to-receive-messages">Create an MVC controller to receive messages</h2>

    In Visual Studio, create a new project. Use the template for Web Application (Model-View-Controller).

    <Frame>
      <img src="https://mintcdn.com/plivo/2OFvQXVNT3srKLUy/images/create_mvcapp.png?fit=max&auto=format&n=2OFvQXVNT3srKLUy&q=85&s=342cab800d30d99fb9cdb362a91ccab8" alt="Create an MVC app" width="1198" height="706" data-path="images/create_mvcapp.png" />
    </Frame>

    Give the project a name — we used `ReceiveSMS`.

    Navigate to the Controllers directory in the ReceiveSMS project. Create a controller named `ReceiveSMSController.cs` and paste into it this code.

    ```cs theme={null}
    using System;
    using Microsoft.AspNetCore.Mvc;

    namespace ReceiveSms.Controllers
    {
        public class ReceiveSmsController : Controller
        {
            // GET: /<controller>/
            public String Index()
            {
                String from_number = Request.Form["From"];
                String to_number = Request.Form["To"]; 
                String text = Request.Form["Text"];
                Console.WriteLine("Message received - From: {0}, To: {1}, Text: {2}", from_number, to_number, text);

                return "Message received";
            }
        }
    }
    ```

    <h2 id="api-create-a-plivo-application-to-receive-messages">Create a Plivo application to receive messages</h2>

    Associate the controller you created with Plivo by creating a Plivo application. Visiting Messaging > [Applications](https://cx.plivo.com/xml-applications) and click **Add New Application**. You can also use Plivo's [Application API](/docs/account/api/application#create-an-application).

    Give your application a name — we called ours `Receive SMS`. Enter the server URL you want to use (for example `https://<yourdomain>.com/receive_sms/`) in the `Message URL` field and set the method to `POST`. Click **Create Application** to save your application.

    <Frame>
      <img src="https://mintcdn.com/plivo/2OFvQXVNT3srKLUy/images/create_SMS_app.jpg?fit=max&auto=format&n=2OFvQXVNT3srKLUy&q=85&s=665006f2112a8e6113716029adfbf2a7" alt="Create Application" width="1440" height="785" data-path="images/create_SMS_app.jpg" />
    </Frame>

    <h2 id="api-assign-a-plivo-number-to-your-application">Assign a Plivo number to your application</h2>

    Navigate to the [Numbers](https://cx.plivo.com/phone-numbers) page and select the phone number you want to use for this application.

    From the Application Type drop-down, select `XML Application`.

    From the Plivo Application drop-down, select `Receive SMS` (the name we gave the application).

    Click **Update Number** to save.

    <Frame>
      <img src="https://mintcdn.com/plivo/NFI9_HRHTMInDf93/images/assign_SMS_app.jpg?fit=max&auto=format&n=NFI9_HRHTMInDf93&q=85&s=94324dc41c7e8ade7a60c98e5fe20094" alt="Assign Phone Number to Receive SMS App" width="1440" height="785" data-path="images/assign_SMS_app.jpg" />
    </Frame>

    <h2 id="api-test">Test</h2>

    Send a text message to the Plivo number you specified using any phone.
  </Tab>
</Tabs>
