Real Users.
Real Contact.

Onboard and engage your users with our phone identity, verification, one-time password and SMS notification platform.

Start using RingCaptcha on your app or website in 90 seconds.
image description

Hi there. Your one-time login PIN is 3592. Thank you!

Your driver has arrived. His name is Arnold and he's driving a silver Toyota Camry. Enjoy your ride!

Thank you for your order at Salina Cosmetics! Your order (3521) is now being processed and should be sent out within 3-5 business days.

MyApp Verification PIN: 5192.

Download iOSApp here: http://ringc.co/o15d0631 and use this code to activate: 1283.

E-Commerce PIN: 8251. Please verify your phone to proceed with checkout.

  • image description
  • Nvidia
  • Klarna
  • Investing
  • Lenddo
  • 99Taxis
  • Workana

Simple. Fast. Reliable.

2-Factor Authentication

Send users an SMS confirmation code to confirm their identity and expedite the onboarding process.

See how it works.
Try 2-Factor Authentication

Built to help companies verify, retain and engage with their customers.

image description
Increased App Downloads

Users work on their laptops but chill with their phones.

Send a link for users to download your mobile app at their convenience.

image description
Contactability (2FA)

In today's on-demand world of ride-sharing, outsourced grocery shopping, etc., immediate user contactability ensures timely service, which is paramount to customer satisfaction.

Always onboard a user to your service with a verified phone number to ensure you have a reliable point of contact.

image description
Trustworthy & High-value Community (2FA)

A phone number is a long-term user identity; less than 5% of people in the US dispose of their phone numbers.

A user with a verified phone number acts with higher accountability creating a great online community.

Always onboard a user to your service with a verified phone number to create a sense of accountability.

image description
Retention (Direct SMS)

Don't be forgotten; wow your users with a great offer or handy tip over SMS occasionally.

SMS has the highest open rate at over 90% and a phone number has long lifetime contactability compared to an email, or a mobile app.

image description
Ease of Re-engagement (One-Time Password)

Some activities are seasonal, like traveling, and users often forget how to login. Don't let this be an opportunity for your competitors to whisk your users away.

Use one-time-passwords (SMS/Voice) to enable your users to re-engage with your service easily.

image description
User Onboarding

At each phase of new user onboarding (app download, sign up, password selection, etc.), any sort of slight friction in the process may result in the loss of a user.

Make user acquisition and onboarding dead simple: once a user enters their phone number, a link is sent via SMS to verify them while they are directed to your app or website.

Beautifully Simple

Start using RingCaptcha in 90 seconds.


// -- Embed Verification Widget --

<script src="https://ajax.googleapis.com/ajax/libs
/jquery/3.1.0/jquery.min.js"
></script> <script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js"></script> <div id="xyz" data-widget data-app="APP_KEY" data-locale="en" data-mode="verification"></div> <script type='text/javascript'> $(document).ready(function() { var widget = new RingCaptcha.Widget('#xyz', { app: "APP_KEY", events: { // Add JavaScript Callbacks verified: function(event) { alert("Phone number verified!"); } } }).setup(); }) </script> // -- Advanced HTML & JS Documentation -- // https://my.ringcaptcha.com/docs/web




// -- Request a PIN --

curl -X "POST" "https://api.ringcaptcha.com/APP_KEY/code/sms" \
-d "api_key=API_KEY" \
-d "phone=TO_NUMBER"


// -- Verify Phone Number --

curl -X "POST" "https://api.ringcaptcha.com/APP_KEY/verify" \
-d "api_key=API_KEY" \
-d "phone=TO_NUMBER" \
-d "code=PIN"


// -- Advanced API Documentation --
// https://my.ringcaptcha.com/docs/api



												





// -- Coming Soon --




















												





// -- Coming Soon --




















												





// -- Coming Soon --




















												




// -- Sending Direct SMS --

curl -X "POST" "https://api.ringcaptcha.com/APP_KEY/sms" \
-d "api_key=API_KEY" \
-d "phone=TO_NUMBER" \
-d "message=Hi there! This is a test message from 
RingCaptcha."


// -- Notes --
// Direct SMS is turned off by default.
// Contact us to enable it on your account.


// -- Advanced API Documentation --
// https://my.ringcaptcha.com/docs/api





												





// -- Coming Soon --




















												





// -- Coming Soon --




















												





// -- Coming Soon --




















												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												




// -- Embed Onboarding Widget --

<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<div id="xyz" data-widget data-app="APP_KEY"
data-locale="en" data-mode="onboarding"></div>
<img src="app-store.png">
<img src="google-play.png">

 
// -- Advanced HTML & JS Documentation --
// https://my.ringcaptcha.com/docs/web





												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												
Verify your phone number
image description

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												

<script type='text/javascript' src="//code.jquery.com/jquery-3.1.1.min.js">
</script>
<script type='text/javascript' charset='UTF-8' src="//cdn.ringcaptcha.com/widget/v2/bundle.min.js">
</script>

<script type='text/javascript'>
  $(document).ready(function() {
    $('#widget-point').append(
      '<div id="xyz" data-widget data-locale="en" data-mode="verification" data-type="dual"></div>'
    );

     const appKey = "APP_KEY";

     var widget = new RingCaptcha.Widget('#xyz', {
          app: appKey,
          events: {
        	
          verified: function(event) {
                 alert(‘SAY RINGCAPTCHA’);
          }
      }
    }).setup();
												
or integrate with these platforms…
image description
image description
image description

Labs

We’re always improving…here’s what we’re working on.
Last Mile

Find out why your users are not completing the 2FA process.


Login With Phone

Never implement user authentication/management ever again. Add a code snippet to create ‘Login with Phone’ sign-in/up button.

Voice Fallback

Automatically reaches out to users who have not completed the 2FA process with voice.

User Management

Own the user data, leave the complexity of the software and infrastructure to us.


Phoney

Integration with inbound leads platform like unbounce.com to filter out leads without real phone numbers.

Analytics Dashboard 2.0

Advanced funnel analysis for user acquisition provides greater insights into your business.


We’ve got you covered.

image description

Flexible plans for your business.

Premium

Get a $49 credit to send SMS and Voice transactions. (Add additional credit as needed with auto-refill)
  • Unlimited Transactions
  • Fully Customizable SMS
  • Custom Sender ID
  • Voice Calls
  • API Access
  • Detailed Analytics
  • Whitelists / Blacklists
  • Normalization API
  • SMS Gateway
  • Premium Support
Start 14 Day FREE Trial

Enterprise

More than 1M transactions per month?

Enterprise plans available with volume discounts, SLAs, & 24/7 support and account monitoring.

Contact Sales
Startup Our Startup plan gives you 500 one-time password SMS each month. These SMS are not customizable and do contain advertising.
image description
Sending SMS internationally can be challenging, but RingCaptcha makes it simple. They handle the entire process from end-to-end, removing the complexity of dealing with multiple international providers and carriers. By delivering our SMS in a consistent and timely manner, they have proven themselves to be a reliable provider. — Howard Lince, Head of Development

Real Users, Real Contact in 90 seconds.

Contact Sales Get Started