{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/16RLLbqxysVo0DzErswr/lyexcqbJ64IBD7S9IHY5/RxkZ6cAsR-5.js"],
  "sourcesContent": ["import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{ComponentPresetsConsumer as r,Link as i}from\"framer\";import{motion as n}from\"framer-motion\";import*as a from\"react\";import o from\"https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/QVzZltTawVJTjmjAWG3C/CodeBlock.js\";export const richText=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"In 2023, a staggering \",/*#__PURE__*/e(\"strong\",{children:\"10 accounts were compromised every second\"}),\", as reported by Surfshark's global study. This relentless data breach epidemic means millions of personal records are still being stolen and leaked on a daily basis - including, potentially, your users\u2019 favorite passwords. That's why it's crucial for businesses to be able to secure their users' accounts by means other than their login and password. And to do this, most of them rely on \",/*#__PURE__*/e(\"strong\",{children:\"SMS verification\"}),\", a simple and effective method of protecting their users' accounts.\"]}),/*#__PURE__*/t(\"p\",{children:[\"So \",/*#__PURE__*/e(\"strong\",{children:\"what is SMS verification?\"}),\" How does it work? And is it really secure? Let's dive in.\"]}),/*#__PURE__*/e(\"h2\",{children:\"What is SMS verification?\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification is a security method that uses Short Message Service (SMS) to confirm a user\u2019s identity. It is employed to validate that an online user is genuinely who they claim to be before permitting actions like logging into an account, processing financial transactions, or accessing sensitive information.\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification provides an additional layer of security alongside the user ID and password, which is essential for companies aiming to safeguard their users and themselves from malicious users and cyber threats.\"}),/*#__PURE__*/t(\"p\",{children:['SMS verification is utilized in two-factor authentication (2FA) or multi-factor authentication (MFA) systems to enhance security. In this setup, the phone serves as the \"',/*#__PURE__*/e(\"strong\",{children:\"something you have\"}),'\" factor, complementing the \"something you know\" factor, which is the user\u2019s password.']}),/*#__PURE__*/e(\"h2\",{children:\"How does SMS verification work?\"}),/*#__PURE__*/e(\"p\",{children:\"From a user\u2019s perspective, SMS verification is pretty straightforward:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Initiate action:\"}),\" The user triggers an action that requires a verification, such as logging in, making a transaction, or changing a password.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Receive code\"}),\": The user receive a SMS containing a \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-otp-definition\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"dOqlOqqG6\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"One-Time Password (OTP)\"})}),\", a 4 to 8 digit code generated randomly. This code is valid for a short period of time and can only be used once.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Enter code\"}),\": The user inputs the SMS verification code into the app or website. If the code matches, the system confirms the user\u2019s identity and allows access to the requested action.\"]})})]}),/*#__PURE__*/e(\"img\",{alt:\"sms verification code\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,z6cRGJfoSp7tbhgyk0JJ0jYU.png\",\"data-framer-height\":\"357\",\"data-framer-width\":\"552\",height:\"178\",src:\"https://framerusercontent.com/images/z6cRGJfoSp7tbhgyk0JJ0jYU.png\",srcSet:\"https://framerusercontent.com/images/z6cRGJfoSp7tbhgyk0JJ0jYU.png?scale-down-to=512 512w,https://framerusercontent.com/images/z6cRGJfoSp7tbhgyk0JJ0jYU.png 552w\",style:{aspectRatio:\"552 / 357\"},width:\"276\"}),/*#__PURE__*/t(\"p\",{children:[\"Behind the scene, all of this happens automatically and instantly. The codes are generated, shared and validated directly by a \",/*#__PURE__*/e(\"strong\",{children:\"SMS verification API\"}),\", integrated directly in the company\u2019s app, website or platform - but more on that later.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Use cases of SMS verification in real life\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification is widely used by companies that handle a high volume of users and user sensitive information. Here are some examples:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Banking, fintech and crypto companies\"}),\" use SMS verification to ensure compliance and to secure transactions with fast and reliable verification.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Social media, messaging and dating applications\"}),\" use it to ensure the privacy and authenticity of their platform for all their users by verifying users when they sign up or when they trigger suspicious activities such as resetting a password.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Retail and e-commerce brands and websites\"}),\" use SMS verification to enhance user trust and reduce fraud within their marketplaces.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Health-related businesses\"}),\" rely on SMS verification to protect sensitive information and maintain secure communication with their users.\"]})})]}),/*#__PURE__*/e(\"h2\",{children:\"Why is SMS verification so important?\"}),/*#__PURE__*/e(\"h3\",{children:\"Preventing fraud\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification is essential for keeping your users safe and preventing their account and sensitive information from falling into the hands of the first person who comes along.\"}),/*#__PURE__*/e(\"p\",{children:\"Passwords alone are fallible: between users who use the same password everywhere, those who use passwords that are too simple or too obvious (no, your date of birth is not a strong password, even if you were born on 29 February) and those who are hacked through social engineering or database hacking.\"}),/*#__PURE__*/t(\"p\",{children:[\"Adding a second layer of security by relying on the user's phone number, which is unique to each person, makes your users' accounts much more secure. \",/*#__PURE__*/e(i,{href:\"https://security.googleblog.com/2019/05/new-research-how-effective-is-basic.html\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"A Google study\"})}),\" has shown that SMS codes block 100% of automated bot attacks, 96% of bulk fishing attacks and 76% of targeted attacks.\"]}),/*#__PURE__*/e(\"p\",{children:\"And protecting your users obviously means protecting yourself. Fraudulent activities can result in significant financial losses, including expenses for remediation, legal fees, compensation to affected users, and potential lawsuits.\"}),/*#__PURE__*/e(\"h3\",{children:\"Legal and regulatory compliance\"}),/*#__PURE__*/e(\"p\",{children:\"Implementing SMS verification also enables your company to comply with legal directives concerning cybersecurity and the security of your users' online information.\"}),/*#__PURE__*/e(\"p\",{children:\"Here are a few examples:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"The \",/*#__PURE__*/e(\"strong\",{children:\"GDPR\"}),\" strongly encourages businesses to implement strong authentication methods to protect their users' data\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"The Payment Card Industry Data Security Standard (\",/*#__PURE__*/e(\"strong\",{children:\"PCI DSS\"}),\") requires all companies managing their users' credit card information to include multi-factor authentication for accessing cardholder data.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"The Health Insurance Portability and Accountability Act (\",/*#__PURE__*/e(\"strong\",{children:\"HIPAA\"}),\") requires American businesses to protect electronic protected health information with robust access controls.\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"As regulations on online data security continue to emerge, implementing SMS verification is a good way of anticipating these regulations and future-proofing your business.\"}),/*#__PURE__*/e(\"h3\",{children:\"Strengthening consumer trust\"}),/*#__PURE__*/e(\"p\",{children:\"Implementing SMS verification will appeal not only to your colleagues in the legal team, but also directly to your users.\"}),/*#__PURE__*/e(\"p\",{children:\"Over 25% of online users have abandoned transactions due to mistrust in an app or website\u2019s security. That\u2019s a quarter of your acquisition efforts and budget going up in smoke!\"}),/*#__PURE__*/e(\"p\",{children:\"Online, particularly when dealing with sensitive information, information privacy is vital for users. Protecting this data is a further guarantee of attracting and retaining new users, and can serve as a competitive advantage. Conversely, media coverage of a data leak can severely damage a company's image.\"}),/*#__PURE__*/e(\"h2\",{children:\"What are the advantages of SMS verification?\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification is one of several ways of setting up a 2FA system, so let's take a look at what makes SMS so effective and why it is so widely used by businesses around the world.\"}),/*#__PURE__*/e(\"h3\",{children:\"A seamless verification experience\"}),/*#__PURE__*/e(\"p\",{children:\"With over 7 billion people owning a phone\u2014accounting for 90% of the global population\u2014SMS stands out as the most widely used method for two-factor authentication (2FA). Its universal reach ensures that nearly everyone is familiar with SMS and verification codes.\"}),/*#__PURE__*/e(\"p\",{children:\"For businesses with mobile apps, SMS-based authentication offers a particularly seamless experience. Users can receive their codes without needing to leave the app, streamlining the process and enhancing convenience.\"}),/*#__PURE__*/e(\"h3\",{children:\"A secure authentication method\"}),/*#__PURE__*/t(\"p\",{children:[\"SMS verification is currently one of the most secure \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"types-of-authentication-methods\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"uAniY3Rmq\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"authentication methods available\"})}),\". It provides greater protection than relying on a password alone or using email verification. Indeed, email accounts are more vulnerable to phishing, malware, and other attacks compared to phone numbers.\"]}),/*#__PURE__*/e(\"h3\",{children:\"High performance\"}),/*#__PURE__*/e(\"p\",{children:\"With its high delivery and open rates, SMS ensures that users receive their OTPs almost instantly. This immediacy facilitates a smooth and efficient authentication experience.\"}),/*#__PURE__*/e(\"p\",{children:\"For example, at Prelude, our customers who use SMS verification have a conversion rate of 95%, which means that more than 9 out of 10 users who receive a code actually use it.\"}),/*#__PURE__*/e(\"h3\",{children:\"Cost effective\"}),/*#__PURE__*/e(\"p\",{children:\"Due to the minimal infrastructure required and the low development costs, SMS verification is a cost-effective approach to user authentication.\"}),/*#__PURE__*/t(\"p\",{children:[\"What really impacts the cost of SMS verification is the cost of sending individual SMS messages, which can be relatively low as you can see on our \",/*#__PURE__*/e(i,{href:\"https://prelude.so/pricing\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"worldwide SMS prices list here\"})}),\" (but note that our prices are lower than the market average, because we work in partnership with several suppliers to negotiate prices for our customers).\"]}),/*#__PURE__*/e(\"h3\",{children:\"Easy to implement and to scale\"}),/*#__PURE__*/e(\"p\",{children:\"From a company's perspective, implementing SMS verification is both easy and straightforward. This method doesn't necessitate significant infrastructure changes or the allocation of extensive resources. At Prelude, we've observed companies successfully implement their OTP systems in under an hour with just a single team member.\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification is also a highly scalable solution. For example, providers like Prelude partner with multiple carriers, allowing their clients to enter new markets without the need to switch providers. Additionally, they possess the infrastructure to handle increased volumes instantly, ensuring that as their clients' user bases expand, they can manage new user verifications effortlessly and without limitations.\"}),/*#__PURE__*/e(\"h2\",{children:\"The challenges are SMS verification\"}),/*#__PURE__*/e(\"p\",{children:\"SMS verification is very effective at mitigating risk, due to two key elements:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"The shared OTP is \",/*#__PURE__*/e(\"strong\",{children:\"random and temporary\"}),\", making it very difficult for fraudsters to guess.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"SMS as a channel is \",/*#__PURE__*/e(\"strong\",{children:\"safer\"}),\" than others like email.\"]})})]}),/*#__PURE__*/t(\"p\",{children:[\"However, SMS verification is \",/*#__PURE__*/e(\"strong\",{children:\"not without flaws\"}),\". \"]}),/*#__PURE__*/t(\"p\",{children:[\"It can be vulnerable to attacks such as \",/*#__PURE__*/e(\"strong\",{children:\"SIM swapping\"}),\", where attackers use social engineering to persuade mobile carriers to transfer a user's phone number to a new SIM card under their control. Additionally, \",/*#__PURE__*/e(\"strong\",{children:\"SMS interception\"}),\" is a concern, as techniques like SS7 attacks exploit vulnerabilities in the global telecommunications infrastructure to intercept messages.\"]}),/*#__PURE__*/t(\"p\",{children:[\"That's why, if you're implementing SMS verification, you need to partner with a provider who is able to spot such fraud schemes, like Prelude and our \",/*#__PURE__*/e(i,{href:{webPageId:\"nSTrDjT9o\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Watch API\"})}),\".\"]}),/*#__PURE__*/e(\"h2\",{children:\"How to choose your SMS verification service?\"}),/*#__PURE__*/e(\"p\",{children:\"Speaking of looking for an SMS verification service, let's take a look at the features and selection criteria to consider.\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Delivery rates and speed\"}),\": ensure the provider can maintain high delivery rate at a fast pace so your users are not stuck waiting for their verification code.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Global reach\"}),\": the further the better, so choose a supplier with relationships with several carriers who can reach your current and future markets.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Fraud prevention\"}),\": select a provider that is able to reduce drastically fraud to keep your users safe and your bill low.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Compliance\"}),\": the provider should comply with all legal regulations that apply to your chosen industry and region.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Flexible billing\"}),\": are you able to adjust your billing based on your usage?\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Transparent pricing\"}),\": check if your provider gives you complete transparency into the details of your pricing and what you\u2019re paying for.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Easy setup\"}),\": the SMS verification API should be easy to download, integrate and activate, with clear documentation.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Channels\"}),\": does the provider rely solely on SMS or does it give you access to other channels such as WhatsApp, \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"rcs-vs-sms\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"eaycd26pR\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"RCS\"})}),\" or Viber?\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Customer support\"}),\": chose a vendor with a reactive and helpful customer support that you can quickly communicate with.\"]})})]}),/*#__PURE__*/t(\"p\",{children:[\"The list could go on and on, depending on your business needs. We dive into this topic deeper in \",/*#__PURE__*/e(i,{href:\"https://prelude.so/blog/the-best-otp-service-providers\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"our best OTP service providers list\"})}),\".\"]}),/*#__PURE__*/e(\"h2\",{children:\"How to get started with an SMS verification API?\"}),/*#__PURE__*/t(\"p\",{children:[\"Getting started is actually pretty easy. For instance, with Prelude API, it can be done in two steps detailed in our \",/*#__PURE__*/e(i,{href:\"https://docs.prelude.so/introduction/overview\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"documentations\"})}),\", which can be completed in less than a day.\"]}),/*#__PURE__*/e(\"h3\",{children:\"1. Create your API Key\"}),/*#__PURE__*/t(\"p\",{children:[\"Once you created \",/*#__PURE__*/e(i,{href:\"https://app.prelude.so/sign-up\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"your free Prelude account\"})}),\", you can generate your API key in your Settings.\"]}),/*#__PURE__*/e(\"h3\",{children:\"2. Send and verify a code\"}),/*#__PURE__*/e(\"p\",{children:\"Use our 2 endpoints to:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Send an SMS verification code\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Check the code validity\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"We provide SDKs in major languages to make it easier for you. You can also see all the different customizable parameters, such as code size or Sender ID, on our \",/*#__PURE__*/e(i,{href:\"https://docs.prelude.so/api-reference/v2/verify/create-or-retry-a-verification\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"documentation\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"And that's it\u2014you've successfully implemented SMS verification! \"}),/*#__PURE__*/e(\"p\",{children:\"Next, you can test it to ensure the integration is correct, add fraud signals to better prevent fraudulent activities, and connect your webhook to receive notifications when an OTP is sent or billed.\"}),/*#__PURE__*/e(\"h2\",{children:\"How to improve SMS verification using Prelude?\"}),/*#__PURE__*/e(\"p\",{children:\"For a long time, the SMS verification sector was dominated by telecoms companies that overcharged their customers, gave them no transparency as to where their money went (much of which was wasted on fake traffic due to fraud) and whose customer service was hard to reach (and even harder to get a response from).\"}),/*#__PURE__*/e(\"p\",{children:\"We know it because we\u2019ve been there, and that\u2019s actually what triggered us into founding Prelude.\"}),/*#__PURE__*/t(\"p\",{children:[\"Prelude is a\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"powerful and easy-to-use\"}),\"\\xa0API that lets you send\\xa0OTP\\xa0codes worldwide using the most appropriate\\xa0channel\\xa0depending on your user\u2019s context. Businesses typically see a\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"20-30% increase\"}),\"\\xa0in conversion compared with their previous provider, while\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"saving 30-40%\"}),\"\\xa0monthly. Prelude also\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"detects and prevents fraud\"}),\"\\xa0using algorithms trained on tens of millions of data points. That\u2019s how we helped companies like \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"why-bereal-chose-prelude-to-better-serve-customer-increase-conversion\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"tmfE2PKCN\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"BeReal to reduce their fake traffic by 95%\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"So if you want to elevate your SMS verification performance, at a lower cost, you can \",/*#__PURE__*/e(i,{href:\"https://app.prelude.so/sign-up\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"start for free with Prelude\"})}),\" or \",/*#__PURE__*/e(i,{href:{webPageId:\"AJeysDBnf\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"talk to our sales team\"})}),\"!\"]})]});export const richText1=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://cu.bzh/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Cubzh\"})})}),\" is a cutting-edge gaming platform that merges the creativity of \",/*#__PURE__*/e(\"strong\",{children:\"Minecraft\"}),\" with the community-driven spirit of \",/*#__PURE__*/e(\"strong\",{children:\"Roblox\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Founded by \",/*#__PURE__*/e(\"strong\",{children:\"Adrien Duermael\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"Ga\\xebtan de Vill\\xe8le\"}),\", Cubzh is designed to be the next-generation \",/*#__PURE__*/e(\"strong\",{children:\"Lego\"}),\", where everything is built with cubes in a fully programmable metaverse. With over 10K worlds and 25K items already created, Cubzh empowers users to play, create, and collaborate seamlessly.\"]}),/*#__PURE__*/e(\"p\",{children:\"Whether you\u2019re building games, coding, or designing objects, Cubzh offers powerful tools for all skill levels. It\u2019s a space where artists and coders can work together effortlessly, with a focus on creativity, ownership, and recognition.\"}),/*#__PURE__*/e(\"h2\",{children:\"Bringing together a high-quality, dynamic and creative community\"}),/*#__PURE__*/e(\"p\",{children:\"As you might have understood, Cubzh is driven by its community. It\u2019s a playground where users create, play, and share their unique content. Cubzh caters to a diverse audience and needs to ensure that all users, regardless of age, have a fun and enjoyable experience. However, as the platform grew, it faced increasing challenges, especially regarding internet fraud.\"}),/*#__PURE__*/e(\"h3\",{children:\"Battling fake accounts and bots\"}),/*#__PURE__*/e(\"p\",{children:\"One of the challenges Cubzh encountered was managing an influx of cheaters and malicious users, creating fake accounts and bots to occasionally disrupt the platform's community-focused environment.\"}),/*#__PURE__*/e(\"p\",{children:\"As Cubzh wants to focus on the quality of its user base, rather than the quantity as other players in their field usually do, they needed a way to prevent these accounts from joining their application.\"}),/*#__PURE__*/e(\"p\",{children:\"Dealing with these accounts internally required time and resources that could have been better spent enhancing the platform. Implementing robust verification processes became necessary to minimize these disruptions, and to allow the team to focus on developing and improving the overall user experience.\"}),/*#__PURE__*/t(\"p\",{children:[\"As \",/*#__PURE__*/e(\"strong\",{children:\"Adrien Duermael, CEO of Cubzh\"}),\", mentioned, \u201C\",/*#__PURE__*/e(\"em\",{children:\"We needed to ensure some level of protection, especially since there\u2019s a recurring problem on platforms like ours with many fake accounts, bots, and people using cheat engines.\"}),\"\u201D\"]}),/*#__PURE__*/e(\"h3\",{children:\"Safeguarding their younger audience\"}),/*#__PURE__*/e(\"p\",{children:\"With the ability to have friends and chat within the app, Cubzh acts as a true social platform attracting a younger audience, with many users aged between 9 and 12.\"}),/*#__PURE__*/e(\"p\",{children:\"To protect this audience, reassure parents and comply with COPPA, Cubzh needed a solution to collect approval from parents or guardians of users under 13.\"}),/*#__PURE__*/e(\"h3\",{children:\"Creating a fair marketplace with real rewards\"}),/*#__PURE__*/e(\"p\",{children:\"One of Cubzh\u2019s innovative approaches includes the Makers\u2019 Marketplace where users can earn in-game money, called Pezh, by creating successful games and get rewarded for their creation. Players can also earn Pezh by being engaged users, with gamified rewards for logging in every day, submitting new creations and so on.\"}),/*#__PURE__*/e(\"p\",{children:\"But for this dynamic to be fair for all players, they had to find a way to prevent them from creating several accounts to earn more Pezh and rig this freemium mechanic.\"}),/*#__PURE__*/e(\"h2\",{children:\"Phone verification with Prelude: a game-changer for Cubzh\"}),/*#__PURE__*/e(\"h3\",{children:\"Seamless user verification to build a high-quality community\"}),/*#__PURE__*/e(\"p\",{children:\"Prelude stepped in with its advanced user verification tools, which quickly became the backbone of Cubzh\u2019s strategy against fake accounts.\"}),/*#__PURE__*/e(\"p\",{children:\"New users must provide their phone number (or their parents' phone number if they are under 13) to complete their registration. Prelude's SMS verification API helps Cubzh verify that each user is legitimate.\"}),/*#__PURE__*/e(\"p\",{children:\"This implementation, done in one day, now empowers Cubzh to:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11px\",\"--framer-text-color\":\"rgb(0, 0, 0)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"secure younger users and reassure their parents\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11px\",\"--framer-text-color\":\"rgb(0, 0, 0)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"ensure the quality of their community by keeping away cheaters and bots\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11px\",\"--framer-text-color\":\"rgb(0, 0, 0)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"prevent users to create multiple accounts to rig the game mechanics\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"\u201C\",/*#__PURE__*/e(\"em\",{children:\"The Prelude API is really easy to use, we were able to implement the solution in less than a day. Since then, we've seen a real improvement in the quality of our user base and in our user\u2019s churn rate.\"}),\"\u201D\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"sms verification in cubzh\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,a8npf1GHKwytaNoRM1R7cdNMlQ.png?preferredSize=full\",\"data-framer-height\":\"619\",\"data-framer-width\":\"1100\",height:\"309\",src:\"https://framerusercontent.com/images/a8npf1GHKwytaNoRM1R7cdNMlQ.png\",style:{aspectRatio:\"1100 / 619\"},width:\"550\"}),/*#__PURE__*/e(\"h3\",{children:\"Real-time analytics of their user onboarding\"}),/*#__PURE__*/t(\"p\",{children:[\"Cubzh team can also use their \",/*#__PURE__*/e(i,{href:{webPageId:\"Ybj1K_p92\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"dashboard within Prelude\"})}),\" to keep track of all the new users. Phone verification being the final stage of their 3-step registration process, tracking the conversion of users who complete this step is crucial to this team, as it directly reflects their user acquisition metrics.\"]}),/*#__PURE__*/e(\"p\",{children:\"Analysis of this data enabled them to better understand their user base. For example, they discovered that users in the US converted twice as much as the global average.\"}),/*#__PURE__*/e(\"p\",{children:\"The development team shares its dashboard with Cubzh's marketing manager, who uses it to track new users from its acquisition campaigns on YouTube Shorts or TikTok Ads, enabling him to assess the quality of the audience he\u2019s targeting.\"}),/*#__PURE__*/e(\"h3\",{children:\"Shared knowledge and negotiated prices that benefit all customers\"}),/*#__PURE__*/e(\"p\",{children:\"Another benefit of Prelude that was crucial for a small team like Cubzh\u2019s one, is the fact that our knowledge is shared across our clients.\"}),/*#__PURE__*/e(\"p\",{children:\"Once a phone number is flagged as spam for one of our clients, it will be flagged as such for all our clients by our self-learning algorithm. One blocked attack will benefit all.\"}),/*#__PURE__*/t(\"p\",{children:[\"Working with companies of all sizes, including apps like \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"why-bereal-chose-prelude-to-better-serve-customer-increase-conversion\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"tmfE2PKCN\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"BeReal\"})}),\" with millions of global users, allows us to build valuable in-house knowledge. This expertise is particularly beneficial for small teams aiming to create quality-focused communities.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Cubzh quickly discovered additional advantages when implementing Prelude. These included direct access to support through Slack and benefiting from Prelude's relationships with providers, which allows us to negotiate \",/*#__PURE__*/e(i,{href:{webPageId:\"zK1UAQzo2\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"better prices\"})}),\" on behalf of all our clients.\"]}),/*#__PURE__*/t(\"p\",{children:['\"',/*#__PURE__*/e(\"em\",{children:\"If you're looking to implement phone number verification quickly, Prelude is perfect\u2014it can be set up in less than a day. I also appreciate that Prelude consistently works on reducing costs with various providers, which directly benefits us. Plus, the fact that major players are already using the platform is very reassuring.\"}),'\"']})]});export const richText2=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In today's digital world, security is a top priority. We've all heard about traditional passwords and how they aren't as secure as we once thought. This is where one-time passwords (OTPs) come in. They offer a more secure and dynamic way of authenticating users.\"}),/*#__PURE__*/t(\"p\",{children:[\"Today, we'll dive into two popular OTP methods: \",/*#__PURE__*/e(\"strong\",{children:\"Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP)\"}),\". What are the differences between them? And how do you decide which one best suits your needs? Let's dive in.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Understanding OTP\"}),/*#__PURE__*/e(\"p\",{children:\"First things first, what exactly is an OTP? \"}),/*#__PURE__*/e(\"p\",{children:\"An OTP is a unique password that can only be used once for a single login session or transaction. These passwords are usually six digits long and are used in Two-Factor Authentication (2FA) and Multi-Factor Authentication (MFA) systems.\"}),/*#__PURE__*/t(\"p\",{children:[\"The main advantage of OTPs is that they are dynamic and short-lived, making them much more secure than static passwords. For more information, you can read \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-otp-definition\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"dOqlOqqG6\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"our full guide on SMS OTP\"})})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"Now, let's dive into the two main types of OTPs.\"}),/*#__PURE__*/e(\"h2\",{children:\"Time-Based One-Time Password (TOTP)\"}),/*#__PURE__*/e(\"h3\",{children:\"How does TOTP work?\"}),/*#__PURE__*/e(\"p\",{children:\"TOTP uses a time-based algorithm where the moving factor is the current Unix time divided by a timestep value, typically set at 30 or 60 seconds. This means that the OTP is only valid for a short period, enhancing security.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"The TOTP algorithm typically works as follows:\"})}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"A shared secret is established between the server and the client.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The current time is determined and divided by the timestep.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"This value is combined with the shared secret using a cryptographic hash function.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The resulting hash is truncated to create a human-readable OTP.\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"TOTP Benefits and Drawbacks\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"\u2705 Benefits:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Higher security due to short validity period\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Reduces the window for potential attacks\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Self-synchronizing (based on current time)\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"\uD83D\uDEA9 Drawbacks:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Requires time synchronization between user's device and server\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"OTP can expire before entry, which might be inconvenient\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Sensitive to time drift on devices\"})})]}),/*#__PURE__*/e(\"h2\",{children:\"HMAC-Based One-Time Password (HOTP)\"}),/*#__PURE__*/e(\"h3\",{children:\"How does HOTP work?\"}),/*#__PURE__*/e(\"p\",{children:'HOTP relies on an event-based algorithm. When the user requests an OTP, a counter increments on both the client and server sides. This counter, along with a shared secret key (known as the \"seed\"), generates a unique OTP. This process uses the HMAC-SHA-1 hashing function.'}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"The HOTP algorithm typically works as follows:\"})}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"A shared secret and initial counter value are established between the server and client.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"When an OTP is requested, the current counter value is combined with the shared secret using HMAC-SHA-1.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The resulting hash is truncated to create a human-readable OTP.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The counter is incremented on both sides after use.\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"HOTP Benefits and Drawbacks\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"\u2705 Benefits:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Flexible, as OTP doesn't expire until used\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"No time synchronization required\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Can be implemented offline\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"\uD83D\uDEA9 Drawbacks:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Potentially less secure due to longer validity period\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Risk of desynchronization if multiple OTPs are generated without use\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Requires secure counter management on both client and server sides\"})})]}),/*#__PURE__*/e(\"h2\",{children:\"Key differences between HOTP and TOTP\"}),/*#__PURE__*/e(\"h3\",{children:\" \u23F3 OTP Expiration\"}),/*#__PURE__*/e(\"p\",{children:\"One of the main differences is how long the OTP remains valid. HOTP tokens do not expire until used, which gives you more flexibility. On the other hand, TOTP tokens expire after a set period, usually 30-60 seconds, which enhances security but requires timely entry. \"}),/*#__PURE__*/e(\"h3\",{children:\"\uD83D\uDD10 Convenience vs. Security  \"}),/*#__PURE__*/e(\"p\",{children:\"HOTP offers a more user-friendly experience without time constraints but is less secure due to the validation window vulnerability. TOTP, while requiring timely entry of the OTP, is more secure because of its time-based expiration. \"}),/*#__PURE__*/e(\"h3\",{children:\"\uD83E\uDEA2 Implementation Complexity  \"}),/*#__PURE__*/e(\"p\",{children:\"HOTP is generally easier to implement because it doesn't require time synchronization. TOTP, however, needs accurate time synchronization, adding a layer of complexity but also increasing security.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"hotp vs totp\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,8RjoeoQCJpvai4bx9EpNM1bVoxY.png\",\"data-framer-height\":\"1080\",\"data-framer-width\":\"1080\",height:\"540\",src:\"https://framerusercontent.com/images/8RjoeoQCJpvai4bx9EpNM1bVoxY.png\",srcSet:\"https://framerusercontent.com/images/8RjoeoQCJpvai4bx9EpNM1bVoxY.png?scale-down-to=512 512w,https://framerusercontent.com/images/8RjoeoQCJpvai4bx9EpNM1bVoxY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/8RjoeoQCJpvai4bx9EpNM1bVoxY.png 1080w\",style:{aspectRatio:\"1080 / 1080\"},width:\"540\"}),/*#__PURE__*/e(\"h2\",{children:\"Choosing between HOTP and TOTP\"}),/*#__PURE__*/e(\"p\",{children:\"Your choice between HOTP and TOTP depends on your specific needs and circumstances:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Security Requirements: If security is your top priority, TOTP is generally the better choice.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"User Experience: If you want to avoid time constraints for users, HOTP might be more suitable.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Time Synchronization: If keeping devices synchronized is a challenge, HOTP can be a more practical option.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Resources and Implementation: If you're looking for something quick and easy to implement with fewer resources, HOTP is the way to go.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Online vs. Offline Use: For offline applications, HOTP might be more suitable as it doesn't require real-time server communication.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Both HOTP and TOTP significantly improve security over traditional passwords by offering dynamic, one-time use authentication methods. \"}),/*#__PURE__*/e(\"p\",{children:\"TOTP's time-based nature makes it generally more secure, making it the preferred choice for most modern online applications. \"}),/*#__PURE__*/e(\"p\",{children:\"When choosing between HOTP and TOTP, consider your specific security requirements, user experience goals, and implementation constraints. Whichever method you choose, implementing robust OTP systems can significantly enhance your security posture, protecting your digital assets from unauthorized access and ensuring a safer user experience.\"}),/*#__PURE__*/e(\"h2\",{children:\"Looking to implement secure OTP solutions for your application? \"}),/*#__PURE__*/e(\"p\",{children:\"At Prelude.so, we specialize in providing advanced TOTP SMS verification and mobile onboarding infrastructure through a set of unified APIs.\"}),/*#__PURE__*/e(\"p\",{children:\"Our solution allows companies to:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Verify their users globally across multiple channels: SMS, WhatsApp, Viber or \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"rcs-vs-sms\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"eaycd26pR\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!1,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"RCS\"})})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Prevent \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"preventing-sms-pumping-fraud\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"loPxJuONU\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS pumping fraud\"})}),\" to protect their users (and their budget)\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Get started with user verification in less than a day, with user-friendly APIs and comprehensive documentation\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Reduce their verification budget through competitive pricing and transparent billing\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Whether you're in social media, dating, fintech, e-commerce, or any other industry requiring user verification, Prelude.so can help you streamline your authentication processes and boost security.\"})]});export const richText3=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"We are proud to announce that we have successfully \",/*#__PURE__*/e(\"strong\",{children:\"achieved SOC 2 Type II compliance!\"}),\" This certification is a testament to our commitment to maintaining the highest standards of data security, ensuring that our customers' sensitive information is handled with the utmost care and protection.\"]}),/*#__PURE__*/e(\"h2\",{children:\"What Is SOC 2 Type II?\"}),/*#__PURE__*/t(\"p\",{children:[\"SOC 2, or \",/*#__PURE__*/e(\"strong\",{children:\"System and Organization Controls 2\"}),\", is a security framework developed by the American Institute of Certified Public Accountants (AICPA). It is designed to ensure that service providers manage customer data in a way that is secure, available, confidential, and maintains processing integrity and privacy. \"]}),/*#__PURE__*/e(\"p\",{children:\"The SOC 2 framework is built around five Trust Services Criteria (TSC):\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Security\"}),\": Protecting systems against unauthorized access and ensuring that only authorized personnel can access sensitive information.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Availability\"}),\": Ensuring that systems are available for operation and use as agreed upon.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Processing Integrity\"}),\": Ensuring that system processing is complete, valid, accurate, timely, and authorized.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Confidentiality\"}),\": Protecting information that is designated as confidential and ensuring it is accessed only by authorized individuals.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Privacy\"}),\": Ensuring that personal information is collected, used, retained, and disclosed in accordance with privacy policies.\"]})})]}),/*#__PURE__*/t(\"p\",{children:[\"SOC 2 Type II is the most comprehensive certification within the SOC framework, as it involves an in-depth audit of both the design and operational effectiveness of a company\u2019s controls\",/*#__PURE__*/e(\"strong\",{children:\" over a period of time\"}),\", typically between six to twelve months. And when it comes to security, consistency is crucial.\"]}),/*#__PURE__*/e(\"p\",{children:\"SOC 2 Type II certification is crucial for companies like us, which provide critical services in sectors that demand robust security measures, such as fintech, healthcare, e-commerce, and more. This report outlines the importance of SOC 2 Type II, the process we undertook to achieve it, and how it benefits our clients.\"}),/*#__PURE__*/e(\"h2\",{children:\"What does it mean for Prelude?\"}),/*#__PURE__*/e(\"p\",{children:\"The SOC 2 Type II audit confirmed that Prelude has implemented and maintained effective security controls in line with the Trust Services Criteria. \"}),/*#__PURE__*/t(\"p\",{children:[\"The report provided by \",/*#__PURE__*/e(\"strong\",{children:\"Thoropass\"}),\" assesses that\",/*#__PURE__*/e(\"strong\",{children:\" Prelude fulfills the five trust principles\"}),\": security, availability, processing integrity, confidentiality and privacy, over a long period of time.\"]}),/*#__PURE__*/e(\"h2\",{children:\"What does it mean for our customers?\"}),/*#__PURE__*/e(\"p\",{children:\"For our clients, SOC 2 Type II means that they can be confident that their data is managed securely, with stringent controls in place to protect against unauthorized access and breaches.\"}),/*#__PURE__*/e(\"p\",{children:\"For clients in highly regulated industries, SOC 2 Type II certification helps ensure that their service providers meet the necessary legal and regulatory requirements for data security.\"}),/*#__PURE__*/t(\"p\",{children:[\"Security and privacy are one of our main concerns, as we \",/*#__PURE__*/e(i,{href:{webPageId:\"Fn_57vtl3\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"actively fight fraud \"})}),\"on behalf of our customers, so obtaining SOC 2 Type II certification was the best way of demonstrating our commitment.\"]}),/*#__PURE__*/t(\"p\",{children:[\"For further information or inquiries, please \",/*#__PURE__*/e(i,{href:{webPageId:\"AJeysDBnf\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"contact us directly\"})}),\" or connect \",/*#__PURE__*/e(i,{href:\"https://www.linkedin.com/company/prelude-so/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"with us on LinkedIn\"})}),\". We will be happy to answer if you have any question!\"]})]});export const richText4=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"As companies and consumers are evolving more and more online, the need to secure their users online accounts and information has become crucial for businesses. And the most popular solution can be spelled in just six letters: \",/*#__PURE__*/e(\"strong\",{children:\"SMS OTP\"}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"But what exactly is SMS OTP, and how does it work? In this guide, we\u2019ll cover everything you need to know about SMS OTP, including its benefits and how to implement it effectively.\"}),/*#__PURE__*/e(\"h2\",{children:\"What is SMS OTP?\"}),/*#__PURE__*/e(\"p\",{children:\"SMS OTP (for One-Time Password), is a temporary and secure password sent via SMS (Short Message Service) to a user\u2019s mobile phone. It functions as a security measure to authenticate a user\u2019s identity.\"}),/*#__PURE__*/e(\"p\",{children:\"The OTP typically takes the form of a 4 to 8 digits code that is randomly generated. It can only be used once and expires after a very short period (often just a few minutes).\"}),/*#__PURE__*/e(\"p\",{children:\"Companies use SMS OTPs to enhance security in their two-factor authentication (2FA) setups.\"}),/*#__PURE__*/e(\"h2\",{children:\"How does SMS OTP work?\"}),/*#__PURE__*/e(\"p\",{children:\"Let's consider a dating app that aims to protect the privacy of its users (especially those who don\u2019t want to reveal their cheesiest pickup lines to the public).\"}),/*#__PURE__*/e(\"p\",{children:\"When one of their user triggers an action that requires an OTP, like an attemps to log in to a new device, here\u2019s what happen:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The app doesn't recognize the device. It suggests sending a verification code by SMS to confirm the user's identity.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The app requests automatically its SMS OTP provider to generate and send an OTP to the user\u2019s mobile number.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The SMS OTP provider\u2019s algorithm generate a random 4-digit code and send it to the user\u201Ds phone.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The user enters the OTP into the dating app. The SMS OTP generator\u2019s algorithm validate the code instantly if it\u2019s correct.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"And voil\\xe0! The user can go back to the dating game on its brand new device.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"And the best part is that it all happened automatically, in less than a minute. Everyone is happy: the user because their data is clearly secured and the dating app because it's safe from hackers.\"}),/*#__PURE__*/e(\"h3\",{children:\"Example of SMS OTP\"}),/*#__PURE__*/e(\"p\",{children:\"SMS OTPs usually follow the same pattern:\"}),/*#__PURE__*/e(\"p\",{children:\"{{Code}} is your validation code for {{Name of the app}}.\"}),/*#__PURE__*/e(\"p\",{children:\"Some business will want to customize their message to align with their brand identity and make this notification part of the overall user experience. For instance, Prelude\u2019s client and social app BeReal, use their tagline at the end of their OTP message:\"}),/*#__PURE__*/e(\"p\",{children:\"\u201C7860 is your validation code for BeReal. Your friends for real.\u201D\"}),/*#__PURE__*/e(\"img\",{alt:\"example of sms otp\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,4mt1CYEeqwW2gTcwMiPJBp5LTeU.png\",\"data-framer-height\":\"357\",\"data-framer-width\":\"552\",height:\"178\",src:\"https://framerusercontent.com/images/4mt1CYEeqwW2gTcwMiPJBp5LTeU.png\",srcSet:\"https://framerusercontent.com/images/4mt1CYEeqwW2gTcwMiPJBp5LTeU.png?scale-down-to=512 512w,https://framerusercontent.com/images/4mt1CYEeqwW2gTcwMiPJBp5LTeU.png 552w\",style:{aspectRatio:\"552 / 357\"},width:\"276\"}),/*#__PURE__*/e(\"h3\",{children:\"TOTP or HOTP: What\u2019s the difference?\"}),/*#__PURE__*/t(\"p\",{children:[\"SMS OTPs usually fall in two different categories, depending on the algorithm used to generate them: \",/*#__PURE__*/e(\"strong\",{children:\"HOTP (HMAC-Based One-Time Password)\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"TOTP (Time-Based One-Time Password).\"})]}),/*#__PURE__*/e(\"p\",{children:\"The key difference between these two is the moving factor that changes each time a code is generated by the algorithm.\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The HOTP is counter-based. The counter increases each time an OTP is requested. This means the code remains valid until it is used or the counter increases.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The TOTP is time-based, valid only for a specific interval. Once the interval espases, a new OTP can be generated.\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"Read more on this topic in our blogpost: \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"totp-vs-hotp\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"HtZuX3XBT\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"TOTP vs HOTP: What's the difference (and which is better)?\"})})]}),/*#__PURE__*/e(\"h2\",{children:\"The (many) use cases of SMS OTP for business\"}),/*#__PURE__*/e(\"p\",{children:\"Business can use SMS OTPs in many ways to enhance the security and trust of their users. The most common use cases include:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"User registration\"}),\": Verify your new users identity and phone number during the account creation process.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Two-factor authentication\"}),\": Add an extra layer of security to the username and password login process.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Password resets\"}),\": Secure the process of resetting a forgotten or compromised password to prevent your users of being blocked out of their accounts.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"New device authentication\"}),\": When users log in from new or unrecognized devices, requesting an SMS OTP can help ensure that they are authorized to do so.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Passwordless authentication\"}),\": If you want to allow your users to sign up using their mobile number only, sending an OTP helps you secure their authentication.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Transaction verification\"}),\": For any transaction, such as a transfer or an online payment, send an SMS OTP to verify the validity of the transaction.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Changing account details\"}),\": When a user wishes to change sensitive account information, such as their email address or password, double check its authenticity with an OTP.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Activating bank payment cards:\"}),\" Newly issued bank cards often require activation via OTP to ensure they are in the possession of the rightful owner. This adds an extra layer of security and ensures that only the cardholder can activate and use the card.\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"We could mention many other use cases, such as securing access to files or integrating third parties, but by now you should have understood that virtually any sensitive action triggered by a user's behaviour could benefit from an extra layer of security thanks to an SMS OTP.\"}),/*#__PURE__*/e(\"h2\",{children:\"How safe is SMS OTP?\"}),/*#__PURE__*/e(\"p\",{children:\"SMS OTPs are very effective at mitigating risks, due to their randomness.\"}),/*#__PURE__*/e(\"p\",{children:\"For a random four-digit code, a fraudster would need to guess each number correctly in under five minutes. That's 10 possibilities, four times. Mathematically, that translates to a one in a 10,000 chance of getting an OTP right.\"}),/*#__PURE__*/e(\"p\",{children:\"Adding to that randomness is the fact that an OTP is valid only once and is time-sensitive. It\u2019s like trying to find a needle in a haystack, except the needle moves to a different haystack every minute!\"}),/*#__PURE__*/e(\"p\",{children:\"But we have to address the elephant in the room: SMS OTP is not flawless.\"}),/*#__PURE__*/e(\"p\",{children:\"Due to their medium, SMS OTPs can be subject to potential threats. SIM swapping, SS7 protocol vulnerabilities, and social engineering are all well-known tactics used by hackers that can weaken SMS OTPs as a strong authentication factor.\"}),/*#__PURE__*/e(\"p\",{children:\"It is a risk companies can mitigate by educating their users, but more importantly, by implementing an OTP provider that actively prevents fraud.\"}),/*#__PURE__*/t(\"p\",{children:[\"\uD83D\uDCA1 For instance, at Prelude, we block 99% of spam and fraud attacks for our customers by using \",/*#__PURE__*/e(i,{href:{webPageId:\"nSTrDjT9o\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"a cross signal risk scoring to identify spam\"})}),\" with the best accuracy. Our \",/*#__PURE__*/e(i,{href:{webPageId:\"nSTrDjT9o\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Watch AP\"})}),\"I analyzes dozens of digital signals, including SIM card portability, to prevent SIM swap attacks targeting your users. Our end-goal is that our clients only send OTP to real users, without having to resort to blocking entire countries.\"]}),/*#__PURE__*/e(\"h2\",{children:\"The benefits of SMS OTP\"}),/*#__PURE__*/e(\"h3\",{children:\"Enhanced security and fraud reduction\"}),/*#__PURE__*/e(\"p\",{children:\"As discussed earlier, SMS OTPs provide a vital layer of security by utilizing an unguessable, time-sensitive code. This helps companies fight fraud and protect user accounts and information from unauthorized access while reducing the risks associated with solely relying on user passwords.\"}),/*#__PURE__*/e(\"h3\",{children:\"Build customer trust\"}),/*#__PURE__*/e(\"p\",{children:\"Over 25% of online users have abandoned transactions due to concerns about an app or website's security. Implementing SMS OTP in your two-factor authentication system can help eliminate these barriers to conversion by reassuring customers that their data and financial information are safe with your company.\"}),/*#__PURE__*/e(\"h3\",{children:\"Accessible to all your users\"}),/*#__PURE__*/e(\"p\",{children:\"SMS is the most used type of 2FA worldwide. It is easily accessible to all users with a phone, as it doesn\u2019t require any additional apps or technology, and leverages a medium that users are already familiar with.\"}),/*#__PURE__*/e(\"p\",{children:\"SMS is universally supported by mobile network operators, making it the ideal channel for reaching users on a global scale.\"}),/*#__PURE__*/e(\"h3\",{children:\"Instant user authentication\"}),/*#__PURE__*/e(\"p\",{children:\"With high delivery and open rates, SMS allow your users to receive and use their OTPs instantly, facilitating a smooth user authentication experience.\"}),/*#__PURE__*/e(\"h3\",{children:\"Ease of implementation\"}),/*#__PURE__*/e(\"p\",{children:\"Implementing SMS OTP into your systems is straightforward and doesn\u2019t require significant infrastructure changes or extensive resources. At Prelude, we\u2019ve witnessed companies launch their OTP systems in under an hour with just a single team member!\"}),/*#__PURE__*/e(\"h3\",{children:\"Scalability\"}),/*#__PURE__*/e(\"p\",{children:\"SMS being a worldwide channel, your OTP needs can grow as the same pace as your company does. You can expand to new markets without needing to rely on new vendors or channels, especially if you work with an OTP service that already integrates multiple providers.\"}),/*#__PURE__*/e(\"h2\",{children:\"How to implement SMS OTP in your application?\"}),/*#__PURE__*/e(\"p\",{children:\"Now that you\u2019re convinced that your company needs SMS OTPs, what are the next steps? Deploying such a service can actually be quite quick and easy.\"}),/*#__PURE__*/e(\"h3\",{children:\"1. Chose your OTP service provider\"}),/*#__PURE__*/t(\"p\",{children:[\"In a previous article, we listed \",/*#__PURE__*/e(i,{href:\"https://prelude.so/blog/the-best-otp-service-providers\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"the features to look for in an SMS OTP provider.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"In order to chose the best one for your company, you need to have a clear must-have features list in mind, whether it\u2019s speed and reliability, ease of implementation, integrations or pricing.\"}),/*#__PURE__*/t(\"p\",{children:[\"Also make sure to check if the provider offers SDKs for your preferred programming language, to ease the integration process! For instance, Prelude \",/*#__PURE__*/e(i,{href:\"https://docs.prelude.so/introduction/quickstart\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"provide SDKs for many popular languages\"})}),\" such as Node, Go or Python.\"]}),/*#__PURE__*/e(\"h3\",{children:\"2. Integrate the provider SMS API\"}),/*#__PURE__*/t(\"p\",{children:[\"Once you made your choice, you can use your provider\u2019s \",/*#__PURE__*/e(i,{href:\"https://prelude.so/blog/what-is-an-sms-api\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS API\"})}),\" to integrate the OTP functionality into your application. Your provider should share with you an API key or token, so you can set up the service.\"]}),/*#__PURE__*/e(\"h3\",{children:\"3. Test the integration\"}),/*#__PURE__*/e(\"p\",{children:\"Before going all-in with your provider, make sure to test the integration. You can do so by using test phone numbers to verify that messages are received correctly, then by monitoring logs in your provider\u2019s dashboard to make sure your users receive their OTPs.\"}),/*#__PURE__*/e(\"h3\",{children:\"4. Monitor and scale\"}),/*#__PURE__*/e(\"p\",{children:\"Once everything runs smoothly for your users, dedicate some time going forward to monitor the costs and volume of SMS sent to keep track of your acquisition performance. Some providers like Prelude give access to their clients to real-time dashboards and analytics so they can understand better their user authentication KPIs and opportunities.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"dashboard prelude\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,AcEE7F4R5JBxkkoTxJldT2Hk.png\",\"data-framer-height\":\"1086\",\"data-framer-width\":\"1990\",height:\"543\",src:\"https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png\",srcSet:\"https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png?scale-down-to=512 512w,https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png 1990w\",style:{aspectRatio:\"1990 / 1086\"},width:\"995\"}),/*#__PURE__*/e(\"h2\",{children:\"Get started with SMS OTP with Prelude Verify\"}),/*#__PURE__*/e(\"p\",{children:\"You can send and verify a code in 2 minutes and 3 simple steps by integrating the Prelude Verify API from any language to start sending OTP messages to your users worldwide using multiple messaging channels.\"}),/*#__PURE__*/e(\"h3\",{children:\"Step 1: Sign up and get your API Key\"}),/*#__PURE__*/e(\"p\",{children:\"To use Prelude\u2019s verification services, you need an API key:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Create an account\"}),\" on \",/*#__PURE__*/e(i,{href:\"https://app.prelude.so/sign-up\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Prelude\"})}),\".\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Navigate to the \",/*#__PURE__*/e(\"strong\",{children:\"Keys\"}),\" section in your Settings.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Generate a new API key\"}),\" and store it securely.\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"Your API key is required to authenticate requests and should be kept private.\"}),/*#__PURE__*/e(\"h3\",{children:\"Step 2: Sending a verification code\"}),/*#__PURE__*/t(\"p\",{children:[\"To verify a phone number, the first step is to send a one-time password (OTP). Use the \",/*#__PURE__*/e(\"code\",{children:\"/v2/verification\"}),\" endpoint to trigger a message with a verification code. You can see all the different customizable parameters, such as code size or Sender ID, on our \",/*#__PURE__*/e(i,{href:\"https://docs.prelude.so/api-reference/v2/verify/create-or-retry-a-verification\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"documentation\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"Request example:\"}),/*#__PURE__*/e(n.div,{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(r,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/QVzZltTawVJTjmjAWG3C/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(o,{...t,code:'import os\\nfrom prelude_python_sdk import Prelude\\n\\nclient = Prelude()\\n\\nverification = client.verification.create(\\n    target={\\n        \"type\": \"phone_number\",\\n        \"value\": \"+30123456789\",\\n    },\\n)\\n\\nprint(verification.id)',language:\"Python\"})})}),/*#__PURE__*/e(\"p\",{children:\"Response example:\"}),/*#__PURE__*/e(n.div,{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(r,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/QVzZltTawVJTjmjAWG3C/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(o,{...t,code:'{\\n  \"id\": \"vrf_01jc0t6fwwfgfsq1md24mhyztj\",\\n  \"status\": \"success\",\\n  \"method\": \"message\",\\n  \"metadata\": {\\n    \"correlation_id\": \"<string>\"\\n  },\\n  \"request_id\": \"<string>\"\\n}',language:\"Python\"})})}),/*#__PURE__*/e(\"h3\",{children:\"Step 3: Checking the verification code\"}),/*#__PURE__*/t(\"p\",{children:[\"Once the user receives the OTP, they enter it into your app. You then verify the code using the \",/*#__PURE__*/e(\"code\",{children:\"/v2/verification/check\"}),\" endpoint.\"]}),/*#__PURE__*/e(\"p\",{children:\"Request example:\"}),/*#__PURE__*/e(n.div,{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(r,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/QVzZltTawVJTjmjAWG3C/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(o,{...t,code:'import os\\nfrom prelude_python_sdk import Prelude\\n\\nclient = Prelude()\\n\\ncheck = client.verification.check(\\n  target={\\n    \"type\": \"phone_number\",\\n    \"value\": \"+30123456789\",\\n  },\\n  code=\"123456\",\\n)\\n\\nprint(check.id)',language:\"Python\"})})}),/*#__PURE__*/e(\"p\",{children:\"Response example:\"}),/*#__PURE__*/e(n.div,{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(r,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/QVzZltTawVJTjmjAWG3C/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(o,{...t,code:'{\\n  \"id\": \"vrf_01jc0t6fwwfgfsq1md24mhyztj\",\\n  \"status\": \"success\",\\n  \"metadata\": {\\n    \"correlation_id\": \"<string>\"\\n  },\\n  \"request_id\": \"<string>\"\\n}',language:\"Python\"})})}),/*#__PURE__*/t(\"p\",{children:[\"In case of errors, such as invalid phone number or invalid request, find out how to troubleshoot them \",/*#__PURE__*/e(i,{href:\"https://docs.prelude.so/api-reference/v2/errors\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"here\"})}),\". \"]}),/*#__PURE__*/e(\"h3\",{children:\"Step 4: Sending fraud signals\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"You're all set with Prelude already! \"}),\"This last step is optional (but highly recommended) as it will help you leverage our API to the fullest by enabling it to mitigate fraud attacks such as SMS pumping.\"]}),/*#__PURE__*/t(\"p\",{children:[\"You can send over 50 user signals (device model, app version, battery level, and more) to Prelude through our Mobile SDKs (for iOS, Android and React Native) for the most accurate filtering possible. \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"mobile-sdk-ios-android\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"kh7AVMu3o\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"More infos here.\"})})})]}),/*#__PURE__*/e(\"p\",{children:\"You can also start opening new countries and new messaging channels (such as WhatsApp, RCS or Viber) depending on your user verification needs.\"}),/*#__PURE__*/e(\"h2\",{children:\"Best practices for SMS OTP\"}),/*#__PURE__*/t(\"p\",{children:[\"How can you ensure your OTP drives conversions instead of losing users? Here are some \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"otp-best-practices\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"bJcnXBKTe\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"best practices we recommend to our clients\"})})}),\", based on our experience sending millions of OTPs each month.\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Keep it short and sweet: Your SMS should start with the code, allowing users to enter it directly into your app without needing to open the message. If you want to add your own flavor in the message content, you can do it after the code is mentioned.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Implement fallback options: If your user has a poor cellular network reception, it\u2019s always best to have fallback options such as WhatsApp or Viber to send your OTP. Aim for an OTP provider that can do this automatically for you.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Allow retrying for OTPs: Users that don\u2019t receive or use their OTP on time should be allowed to ask for a new one.\"})})]}),/*#__PURE__*/e(\"h2\",{children:\"How to overcome the challenges of SMS OTP?\"}),/*#__PURE__*/e(\"p\",{children:\"At Prelude, we noticed that our customers come to us when they face one of the two common challenges of SMS OTP:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"high bills from their OTP providers due to fraud charges,\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"or the need for affordable SMS verification services while developing their apps.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"We address these issues with a pricing model that can reduce SMS verification costs by 30-40% and improve conversion rates. Our services include lower costs for fraud protection, multi-routing options, and a transparent dashboard that shows SMS cost breakdowns and savings.\"}),/*#__PURE__*/e(\"p\",{children:\"With advanced fraud detection and real-time analytics, our clients can now effectively connect with genuine users while minimizing expenses.\"}),/*#__PURE__*/t(\"p\",{children:[\"Elevate your SMS verification process by \",/*#__PURE__*/e(i,{href:{webPageId:\"AJeysDBnf\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"booking a demo of our API\"})}),\" or \",/*#__PURE__*/e(i,{href:\"https://app.prelude.so/sign-up\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"trying it out today\"})}),\"!\"]})]});export const richText5=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" is a fintech app that offers users a crypto wallet which also works as a bank account. It allows users to pay with crypto or fiduciary money on the web. Founders \",/*#__PURE__*/e(\"strong\",{children:\"Alexandre Roubaud\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"Kabir Sethi\"}),\" created the app in order to make Bitcoin savings accessible to everyone.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Alexandre Roubaud, CEO at \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\", describes the genesis:\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"\u201CI discovered Bitcoin during my studies and was convinced by its value proposition of having an internet currency without permission and fees, allowing money transfer anywhere. It's a predictable, deflationary monetary policy, unlike current fiat currencies. So I reconciled these two worlds: helping people save and invest in Bitcoin. The mission was simple: help people save and invest in Bitcoin effortlessly, regardless of their knowledge or budget.\u201D\"})}),/*#__PURE__*/e(\"p\",{children:\"Their business model was quickly successful, but the team quickly noticed an issue with their phone verification flows.\"}),/*#__PURE__*/e(\"h2\",{children:\"Fixing the conversion and deliverability\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" and fintech companies have a main concern regarding \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-verification-guide\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"m82loUu04\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"SMS verification\"})})}),\" as their user perform sensible actions related to money: \",/*#__PURE__*/e(\"strong\",{children:\"deliverability\"}),\". When confirming a payment or a transfer, not receiving the SMS is big deal. It adds frustration and complexity to a moment that is already charged emotionally.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" tested \",/*#__PURE__*/e(\"strong\",{children:\"Firebase\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"Twilio\"}),\". Both worked fine in a few supported countries. But outside of this list of countries deliverability was \",/*#__PURE__*/e(\"strong\",{children:\"not reliable\"}),\" and they had no or \",/*#__PURE__*/e(\"strong\",{children:\"little ways to see if the SMS was really delivered or not\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"As a global product or even to meet the demands of today's nomadic challenges, it's essential to work with \",/*#__PURE__*/e(\"strong\",{children:\"all types of phone number prefixes\"}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"The deliverability issue had also a direct impact on their onboarding conversion rates. The growth of an app is greatly impacted by the conversion of your onboarding flow. A seamless entry point \u2014 i.e. the phone verification step \u2014 has a direct positive impact on:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"app perception (first thing you get from an new app)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"viral loops (invitation, referral)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"social graphs (friend finders via the address book)\"})})]}),/*#__PURE__*/e(\"p\",{children:\"They had to find a solution.\"}),/*#__PURE__*/e(\"h3\",{children:\"How Prelude helped?\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"em\",{children:[\"\u201C\",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" offered an optimal combination of delivery success and cost-efficiency, which was crucial for us as we scaled up.\u201D\"]}),\" \u2014 \",/*#__PURE__*/e(\"strong\",{children:\"Alexandre\"})]}),/*#__PURE__*/e(\"p\",{children:\"First of all our onboarding process was quick and simple, and allowed them to start comparing our offers within hours, this was a good argument to give us a shot!\"}),/*#__PURE__*/t(\"p\",{children:[\"Rather than connecting with a single provider, \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" automatically connected \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" with \",/*#__PURE__*/e(\"strong\",{children:\"20 international and local providers.\"}),\" For each number \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" needs to send an SMS to, we arbitrate among all our providers, checking a variety of parameters:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Operator\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"IP\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Route Conversion\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"and more\u2026\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"We then select the route that offers the \",/*#__PURE__*/e(\"strong\",{children:\"best conversion to price ratio\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"At \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\", we compute conversions differently from our competitors. Instead of basing it on deliverability, we assess \",/*#__PURE__*/e(\"strong\",{children:\"how many sent messages lead to a correct code being entered\"}),\" by the end user in the app. This approach provides us with a reliable KPI to track, as we do not fully rely on the telecommunication providers' ability to confirm message delivery.\"]}),/*#__PURE__*/t(\"p\",{children:[\"This strategy led to a \",/*#__PURE__*/e(\"strong\",{children:\"99.8% delivery rate\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"95%\"}),\" \",/*#__PURE__*/e(\"strong\",{children:\"conversion rate.\"}),\" It was a 10 points improvement globally compared to competitors and even higher in regions that were inadequately supported by the two other providers. By reducing the number of attempts, we lowered the cost of their SMS verification service. These results convinced \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" to gradually shift all their traffic to \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Our global presence and the ability to provide \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" with seamless access to markets worldwide was the final argument for going ahead:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"no registrations\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"no LOA to fill\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"direct routes\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"For these reasons, and the fact that we are like \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" a French company, \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" presented itself as a better fit.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Better visibility and transparency\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" came to \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" primarily to boost their conversion, but they were pleasantly surprised by the capabilities of our dashboard. We provided them with clear indicators of their success in all the regions.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Our dashboard displays acquisitions in real-time, which was a feature \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" particularly loved. They were able to track every requests and troubleshoot any user code issue. We also show global statistics on specific countries that helped them understand the efficacy of new releases. If conversions dropped after introducing a new feature, they were able to see the dip immediately.\"]}),/*#__PURE__*/t(\"p\",{children:[\"This level of transparency was something \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\"}),\" did not expect when they met \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\". But that's what made their team decide to entrust us with their phone verification pipeline.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/t(\"em\",{children:[\"\u201CI would definitely recommend it. \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" meets its value proposition for authentication, optimizing success rates and costs. The team is approachable, understands our needs, and the product delivers on its promise. I would highlight the good relationship and fluid communication we have with the team.\u201D \u2014 \",/*#__PURE__*/e(\"strong\",{children:\"Alexandre\"})]})}),/*#__PURE__*/e(\"h2\",{children:\"Conclusion\"}),/*#__PURE__*/t(\"p\",{children:[\"As always, \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" stood out because of its ability to drive conversions and maintain complete transparency of transactions. \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\" has become a mainstay of \",/*#__PURE__*/e(\"strong\",{children:\"Bitstack\u2019s\"}),\" operations, to the extent that it is used weekly by the CTO\u2019s office and the Ops team.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Built for developers\"}),/*#__PURE__*/t(\"p\",{children:[\"When SMS deliverability issues escalate, the problem can land on development teams\u2019 plates. However, it\u2019s not common practice to provide onboarding data, transparent dashboards or quick customer support. \",/*#__PURE__*/e(\"strong\",{children:\"Prelude\"}),\", on the other hand, is built by and for startups and their dev teams.\"]})]});export const richText6=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"If you\u2019re building an app that requires users to enter a phone number and receive an SMS, you should be worried about fraud \u2014 \",/*#__PURE__*/e(\"strong\",{children:\"International Revenue Share Fraud\"}),\" in particular.\"]}),/*#__PURE__*/t(\"p\",{children:[\"With a \",/*#__PURE__*/e(i,{href:\"https://cfca.org/telecommunications-fraud-increased-12-in-2023-equating-to-an-estimated-38-95-billion-lost-to-fraud/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"12% increase\"})}),\" in fraud loss reported in 2023 as compared to 2021, equating to an estimated $38.95 billion lost, telecommunications fraud is becoming a major threat to business revenues.\"]}),/*#__PURE__*/t(\"p\",{children:[\"While there are, unfortunately, too many different kinds of fraud, one that affects almost every player in the telecom industry is \",/*#__PURE__*/e(\"strong\",{children:\"International Revenue Share Fraud (IRSF)\"}),\". Even if your app isn\u2019t directly offering a telecom service, it can be affected during user verification and authentication attempts.\"]}),/*#__PURE__*/t(\"p\",{children:[\"In this article, we\u2019ll discuss \",/*#__PURE__*/e(\"strong\",{children:\"what IRSF is\"}),\" and how it affects businesses and customers using SMS and OTP-based verification mechanisms.\"]}),/*#__PURE__*/e(\"h2\",{children:\"What is International Revenue Share Fraud (IRSF)?\"}),/*#__PURE__*/t(\"p\",{children:[\"International Revenue Share Fraud, or IRSF, is a form of financial fraud in which cyber criminals leverage the complex pricing structures of international calls and SMS to generate and divert revenue to their own accounts. This type of fraud is also called \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"preventing-sms-pumping-fraud\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"loPxJuONU\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS Pumping Fraud\"})}),\" or SMS Toll Fraud.\"]}),/*#__PURE__*/e(\"p\",{children:\"SMS Pumping Fraud is committed when fraudsters artificially inflate the volume of international SMS messages sent to premium-rate numbers. They usually do this by tricking apps into completing fake signups or fake phone verification requests on those premium numbers. These numbers carry higher charges, and the app targeted by said fraudsters pays the cost.\"}),/*#__PURE__*/t(\"p\",{children:[\"And these costs can reach stellar amounts. In 2023, Elon Musk revealed that \",/*#__PURE__*/e(i,{href:\"https://commsrisk.com/elon-musk-says-twitter-lost-60mn-a-year-because-390-telcos-used-bot-accounts-to-pump-a2p-sms/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Twitter lost $60mn a year to SMS Pumping Fraud\"})}),\"!\"]}),/*#__PURE__*/e(\"h2\",{children:\"How does IRSF work?\"}),/*#__PURE__*/e(\"p\",{children:\"The scammer procures a range of premium-rate phone numbers (IPRN) that they will use to register on different apps with phone verification signups.\"}),/*#__PURE__*/e(\"p\",{children:\"They generally operate out of countries where regulations around this area are lax or weakly implemented.\"}),/*#__PURE__*/e(\"p\",{children:\"The scammer is often in cahoots with a telecom carrier, operator or anyone operating a layer between the message and the end, such as the SMS aggregator. Indeed, telecom carriers have to reach agreements to share revenue with other carriers to facilitate international messages. While these agreements are meant to be mutually beneficial, they do create gaps for scammers to exploit.\"}),/*#__PURE__*/e(\"p\",{children:\"The fraudsters then bombard a business with fake OTP requests to premium numbers they (the fraud people) control. The business racks up a big bill, while the fraudster and the telecom operator/carrier share the money made by the premium numbers.\"}),/*#__PURE__*/e(\"p\",{children:\"IRSF can also occur within normal telecom routes to regular numbers. They may not cost as much, but still accrue enough stolen money to make the fraud worthwhile. This is what makes IRSF so difficult to detect.\"}),/*#__PURE__*/e(\"p\",{children:\"This form of fraud is structurally hard to fight that it has caught Europol\u2019s attention, as it should.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:'\"This is the most damaging fraud scheme to date, where a criminal partners with an International Premium Rate Number (IPRN) provider that charges high rates\u2026 and agrees to share revenue for any traffic generated by the fraudster.\"'}),\" \u2014 \",/*#__PURE__*/e(i,{href:\"https://www.europol.europa.eu/operations-services-and-innovation/public-awareness-and-prevention-guides/telecommunications-fraud\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"em\",{children:\"Europol\"})})})]}),/*#__PURE__*/e(\"h3\",{children:\"Other IRSF attack methods\"}),/*#__PURE__*/e(\"p\",{children:\"While SMS pumping fraud is the most common and the one that can result in the largest losses for businesses, fraudsters can use a range of attack methods:\"}),/*#__PURE__*/e(\"h4\",{children:\"PBX hacking\"}),/*#__PURE__*/e(\"p\",{children:\"By exploiting vulnerabilities in Private Branch Exchange (PBX) systems - telephone networks used within a company - fraudsters can reroute calls to premium rate numbers.\"}),/*#__PURE__*/e(\"h4\",{children:\"Wangiri Fraud\"}),/*#__PURE__*/e(\"p\",{children:'Also known as \"one-ring\" fraud, attackers place short calls to targets, prompting them to call back. The return call is directed to a premium rate number.'}),/*#__PURE__*/e(\"h4\",{children:\"SIM Swapping\"}),/*#__PURE__*/e(\"p\",{children:\"Fraudsters take control of a victim\u2019s phone number by tricking the mobile provider into swapping the number to a SIM card they control. This enables them to receive calls and texts meant for the victim.\"}),/*#__PURE__*/e(\"h4\",{children:\"Roaming Fraud\"}),/*#__PURE__*/e(\"p\",{children:\"Fraudsters can exploit international roaming agreements to make billed calls to another network, using stolen or cloned SIM cards or taking advantage of billing delays in international call records.\"}),/*#__PURE__*/e(\"h2\",{children:\"Which businesses should be concerned with IRSF?\"}),/*#__PURE__*/e(\"p\",{children:\"While certain sectors are more exposed to fraudulent attacks, such as finance, healthcare or social applications, any international company that sends verification messages around the world needs to be concerned about the IRSF.\"}),/*#__PURE__*/e(\"p\",{children:\"It doesn\u2019t even have to be a major brand or app. As long as the app has an input field for a phone number and is designed to send an SMS to anybody, it is vulnerable to IRSF.\"}),/*#__PURE__*/e(\"p\",{children:\"Be it account openings, user signups, or transaction verifications, fraudsters can hijack any SMS-based delivery.\"}),/*#__PURE__*/t(\"p\",{children:[\"If you run or work in a company like this, you don\u2019t have to ask, \",/*#__PURE__*/e(\"em\",{children:\"\u201CCan it affect us?\u201D\"}),\" You have to ask, \",/*#__PURE__*/e(\"em\",{children:\"\u201CWhen will it happen to us?\u201D\"})]}),/*#__PURE__*/e(\"h2\",{children:\"How does IRSF impact companies?\"}),/*#__PURE__*/e(\"h3\",{children:\"Financial losses\"}),/*#__PURE__*/e(\"p\",{children:\"Companies face direct financial losses from IRSF, often resulting in exorbitant phone bills due to fake users.\"}),/*#__PURE__*/e(\"p\",{children:\"This fraud comes also with indirect costs, like the cost of investigating and mitigating the fraud, and added operational costs.\"}),/*#__PURE__*/e(\"h3\",{children:\"Reputation damage\"}),/*#__PURE__*/e(\"p\",{children:\"If customers are directly affected by the fraud or if their information security is compromised, this can lead to severe customer and employee trust damages.\"}),/*#__PURE__*/e(\"p\",{children:\"Some companies may be tempted to respond to fraud by blocking entire countries and regions, frustrating the real users they have there.\"}),/*#__PURE__*/e(\"h3\",{children:\"Operational disruption\"}),/*#__PURE__*/e(\"p\",{children:\"A high volume of fake request can lead to a company\u2019s system crash or downtime, impacting the experience of real users. The detection and response to IRSF can also disrupt regular business operations, diverting resources and manpower from core activities and may cause the loss of competitive advantage.\"}),/*#__PURE__*/e(\"h3\",{children:\"Legal penalties\"}),/*#__PURE__*/e(\"p\",{children:\"Companies can be fined or prosecuted if it is proven that they have not adequately protected their customers' data. Any accusation of SMS pumping fraud can also result in organisations being charged with aiding and abetting fraud.\"}),/*#__PURE__*/e(\"h2\",{children:\"How to detect IRSF?\"}),/*#__PURE__*/e(\"p\",{children:\"Detecting IRSF is tricky as it can be mixed with legitimate international calls. But you can keep an eye on those signals:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Investigate any sudden spike in the number of OTP requests in a short duration, especially from countries where your business doesn't have too many customers.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Pay close attention to the speed at which SMS requests are coming in from users. Be wary of IRSF anytime there is an unexplained boost in those numbers.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Ask your provider to flag any large volumes in OTP requests from international destinations that are at high risk for fraud.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Look for multiple SMSes directed to the same number or destination.\"})})]}),/*#__PURE__*/e(\"h2\",{children:\"How to protect your business from IRSF with Prelude?\"}),/*#__PURE__*/e(\"p\",{children:\"ISRF is not inevitable and your company can find a solution to protect your customers (and your budget) from these attacks.\"}),/*#__PURE__*/e(\"p\",{children:\"At Prelude, we focus on doing a few things very well. One of them is preventing IRSF, particularly SMS Pumping. The Prelude SDK and API are specifically built to protect customers against IRSF within their OTP-based verification flows.\"}),/*#__PURE__*/e(\"p\",{children:\"How do we achieve this?\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"We use \",/*#__PURE__*/e(i,{href:{webPageId:\"Fn_57vtl3\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"cross-signal risk scoring\"})}),\" to identify spam with the best accuracy so our clients only send OTP SMS to real users.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"We enrich our analysis with commercial databases for more precise fraud detection.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Our knowledge is shared across all our clients. One blocked attack will benefit all accounts.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"In the case of an attack, we don\u2019t block entire carriers or countries. Instead, we do a granular fraud scoring and pinpoint the issues so that your business is not impacted, either through financial loss or suspension of necessary SMSs. We prefer to be precise to the extent that we can offer SMS infrastructure in countries not serviced by competitors like Indonesia, the Philippines, and Brazil \u2014 because legitimate customers should not suffer due to cybercriminals' actions.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"We\u2019re also an AI-native company, which means we can better pinpoint fraud using precise scoring methods that consider heuristics and enriched data. Traditional providers only look at a phone number to determine fraud, but then you\u2019re paying for false negatives and losing growth with false positives.\"}),/*#__PURE__*/t(\"p\",{children:[\"If we\u2019ve piqued your curiosity, you can \",/*#__PURE__*/e(i,{href:\"https://prelude.so/contact\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"book a demo\"})}),\" to see how Prelude sends OTP SMSes at 60% less than market cost, 99% deliverability, and astonishingly minimal fraud.\"]})]});export const richText7=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://apps.apple.com/us/app/locket-widget/id1600525061\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Locket\"})}),\" is a widget that shares live photos from your best friends right to your home screen. They\u2019re used by millions of friends, families, and lovers across the globe. With an outsized social impact supported by a small team, their CTO, \",/*#__PURE__*/e(i,{href:\"https://www.linkedin.com/in/mdbustos/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Maxi Bustos\"})}),\", is constantly optimizing for scale. \"]}),/*#__PURE__*/t(\"p\",{children:[\"That\u2019s why when \",/*#__PURE__*/e(\"strong\",{children:\"SMS verification pains \"}),\"started to strain the business he looked to Prelude for better support, reliability, and growth services.\"]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Building a social app with a small team\"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:'\"We are a small company supporting millions of users all over the world. So essentially, the challenge is: how do you do more with less? How do you use technologies or tools to make your team as productive as possible so that you can keep the scaling without having to scale the team? '})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"The challenge is prioritization\u2013very effective, very aggressive prioritization. That and then working with partners that don't have layers of bureaucracy. We need to get straight to the real work of getting things working.\\\" - \"}),/*#__PURE__*/e(\"strong\",{children:\"Maxi Bustos\"}),\", CTO at Locket.\"]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"The costs of SMS verification (and serving international markets)\"})}),/*#__PURE__*/t(\"p\",{children:[\"As the company grew, so did the SMS verification challenge. This technology is always a burden for startups, but particularly for Locket. Locket serves countries like Vietnam and Saudi Arabia that are particularly vulnerable to \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"preventing-sms-pumping-fraud\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"loPxJuONU\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"SMS-related fraud\"})})}),\". \"]}),/*#__PURE__*/t(\"p\",{children:[\"This means that getting \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-verification-guide\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"m82loUu04\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS verification\"})}),\" to people in this country is just flat-out more expensive per SMS, and you have to be increasingly aware of fraud and related incidents that drain team resources. Small teams don\u2019t have the time to work with cumbersome bureaucratic systems every time there\u2019s an issue, there\u2019s a fraud attempt, or something goes wrong.\"]}),/*#__PURE__*/e(\"p\",{children:\"That\u2019s why Maxi started looking into Prelude. At Prelude, we\u2019re advancing SMS & OTP verification through a set of unified APIs and services built for developers and fast-paced companies.\"}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Better SMS verification, with better support\"})}),/*#__PURE__*/e(\"p\",{children:\"Prelude is no incumbent. We\u2019re taking years of telco experience and building mobile-first services that suit today\u2019s development needs. Ultimately, Locket uses Prelude because we keep up with startup needs be it customer support that actually responds, reliable services that make growth possible, or the dashboards and reports modern companies need to thrive.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Fast-paced support & setup times\"})}),/*#__PURE__*/t(\"p\",{children:[\"When Maxi looked to explore SMS verification tools and assess costs, he couldn\u2019t get many providers on the phone in the time it took to get setup with Prelude. We\u2019ve built \",/*#__PURE__*/e(i,{href:{webPageId:\"zK1UAQzo2\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Prelude\u2019s pricing\"})})}),\" to be competitive if not cheaper than everything else on the market but once you take in the cost of lost days and hours of development time troubleshooting with large organizations\u2026 well, that\u2019s why Maxi started testing Prelude in the first place.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"\u201CWe were trying to reduce SMS costs and at first we tried with other providers but weren\u2019t happy with their response time. The nice thing about Prelude being a small startup is that I get to chat with them on Slack. We got setup in an hour,\"}),\"\u201D Maxi said.\"]}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Reliability keeps high-risk markets open\"})}),/*#__PURE__*/t(\"p\",{children:[\"At Prelude, we use algorithm-based optimization that allows us to be more precise in \",/*#__PURE__*/e(i,{href:{webPageId:\"Fn_57vtl3\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"our fraud detection\"})})}),\". We stop more fraud, but in addition, we won\u2019t block entire countries or affordable carrier routes if there\u2019s suspicious activity. Instead, we can pinpoint issues to a single number, stop it, and keep more countries and markets enabled.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"\u201CWe had this situation on a weekend where some country was not enabled for us and the Prelude team enabled it five minutes later. With a larger partner would have been a ticket and someone would triage that, and three hours later someone would resign, and two days later you get an answer. It\u2019s frustrating. Not having to deal with that is an important asset.\"}),\"\u201D\"]}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Built for Developers\"})}),/*#__PURE__*/t(\"p\",{children:[\"The Locket team was able to understand and get setup with Prelude\u2019s API within a day. In addition, they regularly check in on \",/*#__PURE__*/e(i,{href:{webPageId:\"Ybj1K_p92\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"dashboards and reports\"})})}),\" to look at per country prices and assesses how well their costs are scaling with growth.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"\u201CTime is an opportunity cost for us so we move really fast. We like to partner with companies who are in the same boat. Prelude is easy to use, the API is great, the dashboard is nice and I can see reports.\u201D\"})})]});export const richText8=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://play.google.com/store/apps/details?id=com.feels&hl=en_US&gl=US&pli=1\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Feels\"})}),\" is a feel-good dating app designed to get you tons of good vibes as you swipe by rethinking the modern dating portfolio. With user experience at the forefront of the app\u2019s positioning, it was paramount that user onboarding be secure and seamless. \"]}),/*#__PURE__*/t(\"p\",{children:[\"At the same time, their founder,\",/*#__PURE__*/e(i,{href:\"https://twitter.com/danielcheaib?lang=en\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\" Daniel Cheaib\"})}),\", needed an SMS verification provider that didn\u2019t just work effectively but also helped the business scale. Daniel looked to the\",/*#__PURE__*/e(i,{href:{webPageId:\"jHZR0p4bq\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\" Prelude\"})}),\" team to provide a better \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-verification-guide\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"m82loUu04\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS verification\"})}),\" experience for users and the Feels team.\"]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Testing Prelude as an alternative SMS verification provider\"})}),/*#__PURE__*/e(\"p\",{children:\"As the founder of Feels, Daniel wears many hats. It\u2019s his (and any founder\u2019s) job to find the right balance between growth, profitability, and creating an environment where everybody likes coming to work. As a growing startup, Daniel is in charge of the relationships with service providers and costs.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"The importance of costs and scale\"})}),/*#__PURE__*/e(\"p\",{children:\"Feels was using many different types of authentication (Google, Apple, and others) when they realized they needed to unify the experience to prevent fraud, but also find an option that scaled with their business. The big push to find new verification was led by growth efforts. It\u2019s expensive to scale when you have as many phone numbers as accounts.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Seeking transparency\"})}),/*#__PURE__*/e(\"p\",{children:\"The next layer of onboarding looks at how seamlessly someone can onboard into your app. Unfortunately, with other providers, Feels didn\u2019t have transparency into the inner workings of how many SMS messages were being sent or what happened when things went wrong\u2014and they couldn't assist users who were blocked and reaching out. \"}),/*#__PURE__*/e(\"p\",{children:\"This came to a head when another provider started to change their pricing and became more opaque about their fees. More transparency was needed.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Testing alternatives\"})}),/*#__PURE__*/e(\"p\",{children:\"This pushed Daniel to look for alternatives. That\u2019s when he found Prelude. Initially, Daniel routed just a fraction of traffic through Prelude to see how it would stack up to other options on the market. \"}),/*#__PURE__*/e(\"p\",{children:\"But when Prelude outperformed other options on cost, transparency, and customer support, Daniel moved all of their traffic over to Prelude.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"\uD83D\uDCA1\"}),/*#__PURE__*/t(\"em\",{children:[/*#__PURE__*/e(\"strong\",{children:' \"'}),\"At first, we thought we didn\u2019t want to be dependent on one provider because as soon as that provider decides to increase costs, it becomes an emergency\u2026so we set up a system in which we can connect to multiple providers, and in the beginning, we chose two different ones. \"]})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/t(\"em\",{children:[\"Knowing that Prelude was already an aggregator we figured we could rely more on Prelude vs another provider that only relies on a single carrier. We set up both and introduced Prelude in a new market and it works very well. We were struck by Prelude\u2019s transparency and the ease of setting up the partnership and the data shared. It took a few months, but now all of our traffic is on Prelude.\",/*#__PURE__*/e(\"strong\",{children:'\" '})]})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"-\"})}),\" Daniel Cheaib, Founder of Feels.\"]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Better SMS verification, with better support\"})}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Build a better UX for your customers\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"\u201CWe used to use competitors, but they didn\u2019t offer a dashboard where I could track how many people were getting our messages every day. I only saw that at the end of the month in one invoice, and they made mistakes in that invoice and in that pricing. With Prelude, I can check on my customers. If they have an issue, I can look into it by phone number and follow up with them,\u201D\"}),\" Daniel told us.\"]}),/*#__PURE__*/e(\"p\",{children:\"Most SMS verification alternatives are built by large companies that offer this service in a suite of tools. At Prelude, we\u2019re hyper-focused on this one area and optimize for what founders and builders need. We think that transparency in your user experience and billing is part of that. Make every ping count for your customer experience, not your bill.\"}),/*#__PURE__*/t(\"p\",{children:[\"Here\u2019s what \",/*#__PURE__*/e(i,{href:{webPageId:\"Ybj1K_p92\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"our dashboard\"})})}),\" looks like:\"]}),/*#__PURE__*/e(\"img\",{alt:\"feels dashboard on prelude\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,D1fBv2GK1dXmHIQKhFYczViD61o.png\",\"data-framer-height\":\"1528\",\"data-framer-width\":\"2808\",height:\"764\",src:\"https://framerusercontent.com/images/D1fBv2GK1dXmHIQKhFYczViD61o.png\",srcSet:\"https://framerusercontent.com/images/D1fBv2GK1dXmHIQKhFYczViD61o.png?scale-down-to=512 512w,https://framerusercontent.com/images/D1fBv2GK1dXmHIQKhFYczViD61o.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/D1fBv2GK1dXmHIQKhFYczViD61o.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/D1fBv2GK1dXmHIQKhFYczViD61o.png 2808w\",style:{aspectRatio:\"2808 / 1528\"},width:\"1404\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Cost\"})}),/*#__PURE__*/e(\"p\",{children:\"At Prelude, we use over 20 different providers to find the most stable and most affordable route. In contrast, alternatives likely only use one route, and they don't do algorithm-based optimization, which means they\u2019re only adjusting those routes if you press them. We\u2019re able to optimize costs and reliability with smart and AI-powered algorithms that enhance reliability, precision of fraud detection, and affordability\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"\uD83D\uDCA1\"}),/*#__PURE__*/t(\"em\",{children:[/*#__PURE__*/e(\"strong\",{children:' \"'}),\"We compared Prelude with other international providers, and they are much better. The service works well, and that's the first thing you want to be sure of. The company is really professional, and it does the work of aggregating the best traffic for you, so you don\u2019t have to bother with that.\\\"\"]})]}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Support\"})}),/*#__PURE__*/e(\"p\",{children:\"At Prelude, we\u2019re nimble and quick to respond to our customers. We think this is important for small teams. Most of our customers tell us how frustrating it is to work with large companies that make you queue for customer support. \"}),/*#__PURE__*/e(\"p\",{children:\"For scrappy startups that need to build fast, this is a significant blocker. Not to mention, when bills are wrong you want to talk with someone to review the costs, not end up in a billing queue with a lack of transparency on how you were charged.\"}),/*#__PURE__*/t(\"p\",{children:[\"Daniel put it simply: \u201C\",/*#__PURE__*/e(\"em\",{children:\"When I write to the Prelude team, I get an answer pretty fast. I can rely on them.\"}),\"\u201D\"]})]});export const richText9=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Most SMS verification providers aren\u2019t developer friendly\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://bereal.com/en/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"BeReal\"})}),\" is a social messaging app that encourages users to share genuine photos with friends of themselves and their day-to-day lives. The app has grown rapidly with over 25 million users worldwide. As BeReal scaled, their dev teams noticed that SMS verification and conversion was below their internal standards and they had no way to troubleshoot the issue. \"]}),/*#__PURE__*/t(\"p\",{children:[\"After testing Prelude in small markets, \",/*#__PURE__*/e(\"strong\",{children:\"BeReal saw better pricing, reliability, and usability than with telco competitors\"}),\". Today, BeReal uses Prelude for all global SMS verification to provide a better customer experience powered by developer-first tooling.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Question\"}),\": \",/*#__PURE__*/e(\"em\",{children:\"What would you tell a developer who was building an app and needed SMS verification? \"})]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://es.linkedin.com/in/adamsurak\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Adam Surak\"})})}),/*#__PURE__*/e(\"strong\",{children:\", Head of Platform at BeReal: \"}),/*#__PURE__*/e(\"em\",{children:\"Prelude knows more than you about sending SMS. If you're starting your business, if you're introducing SMS sending into your application, risk-wise, business-wise, cost-wise\u2013start with Prelude.\"})]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Testing Prelude as an alternative SMS verification provider\"})}),/*#__PURE__*/e(\"p\",{children:\"BeReal is a social messaging app, which means they rely on SMS verification to keep potential users in-app (rather than bouncing to email verification). They\u2019re also used by young markets that may not have reliable email addresses.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Using Prelude for Transparency Into SMS Failure\"})}),/*#__PURE__*/t(\"p\",{children:[\"With that in mind, it was pivotal to rely on \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-verification-guide\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"m82loUu04\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"SMS verification\"})})}),\" to onboard new users. But the BeReal team started to \u201Cfeel uncomfortable with the lack of control\u201D over their current verification solutions. They noticed that some SMS verification messages weren\u2019t arriving. Was this a telco problem? Or because the phone was on WiFi not data? The team implemented Prelude as a fallback capability in instances where the SMS didn\u2019t arrive fast enough.\"]}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Testing Prelude as an Affordable Alternative\"})}),/*#__PURE__*/e(\"p\",{children:\"In addition, BeReal was using Google Firebase SMS authentication but was notified that pricing would change. However, BeReal is the target of a large amount of fraud and they have millions of users so per-user pricing didn\u2019t work. The team started to build their own solution but began to lean on Prelude as the team rolled out global SMS services.\"}),/*#__PURE__*/e(\"p\",{children:\"After implementing Prelude, skeptics turned to believers and now BeReal relies on Prelude for global SMS delivery.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"\u201CPrelude\u2019s price point was very interesting in comparison to the rest of the market. The second reason for testing them was because of how they do the arbitrage of different providers. We pretty much knew that by definition of this arbitrage that the more volume we\u2019d give them, the cheaper it would become\u2013and not because we\u2019re negotiating, but because they automatically negotiate on our behalf, which is pretty nice. The advantage of this angle is that when we looked at it mathematically, the more customers they onboard, the better price they're going to get without us necessarily having to do anything, like this system naturally would optimize for a lower cost,\u201D \"}),\"Adam said\",/*#__PURE__*/e(\"em\",{children:\". \"})]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Why Prelude won\"})}),/*#__PURE__*/e(\"p\",{children:\"Prelude won the BeReal business because as BeReal tested the service a few things changed.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Pricing\"})}),/*#__PURE__*/e(\"p\",{children:\"First and foremost, BeReal was attracted to Prelude\u2019s pricing model. Not only is it cheaper but costs decrease as Prelude\u2019s volume increases, which is opposite of most telco companies who pay per users.\"}),/*#__PURE__*/t(\"p\",{children:[\"These costs don\u2019t include the cost of lost business when fraud occurs and apps are potentially blocked from certain countries, or the cost of team time spent troubleshooting opaque issues.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"prelude variable price\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,OWCcsFYVjjc4UV1aUwepRBfi0Lo.png\",\"data-framer-height\":\"1048\",\"data-framer-width\":\"3022\",height:\"524\",src:\"https://framerusercontent.com/images/OWCcsFYVjjc4UV1aUwepRBfi0Lo.png\",srcSet:\"https://framerusercontent.com/images/OWCcsFYVjjc4UV1aUwepRBfi0Lo.png?scale-down-to=512 512w,https://framerusercontent.com/images/OWCcsFYVjjc4UV1aUwepRBfi0Lo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/OWCcsFYVjjc4UV1aUwepRBfi0Lo.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/OWCcsFYVjjc4UV1aUwepRBfi0Lo.png 3022w\",style:{aspectRatio:\"3022 / 1048\"},width:\"1511\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"Transparency For Troubleshooting & Customer Success\"]})}),/*#__PURE__*/e(\"p\",{children:\"Prelude provides a set of unified APIs and transparent dashboards which means if an SMS verification message fails, you can explore why. We also believe we fail less because of our mutli-routing features.\"}),/*#__PURE__*/e(\"p\",{children:\"With other telco providers, if you conversion rate falls below a certain threshold you\u2019ll be blocked from certain countries. But at the same time, you won\u2019t have access to what\u2019s going on to create poor conversion. As a social app that\u2019s the target of high amounts of fraud, this was unacceptable to the BeReal team.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"\u201CPrelude iterates significantly faster than what we were able to do with our previous providers. We get more visibility in terms of what was going on. We are able to go to a particular phone number and a particular event that happened and say, this phone number failed to receive an SMS. Why do we believe that happened? \u2026This is enabling our customer support to actually react to customers' questions,\u201D Adam said. \"})}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Built for Developers\"})}),/*#__PURE__*/e(\"p\",{children:\"When SMS deliverability issues escalate, the problem can land on development teams\u2019 plates. However, it\u2019s not common practice to provide onboarding data, transparent dashboards, or quick customer support. Prelude, on the other hand, is built by and for startups and their dev teams.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"\u201CIf someone is building an application today, going to these traditional companies means that you are committing to a massive pain. Versus if you go to Prelude, it\u2019s a proper 2024\\xa0 SaaS business on top of which you can actually build and you will understand what is going on, versus starting to play by some weird rules that the industry itself created,\u201D Adam said. \"})})]});export const richText10=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"If you're developing an app, validating user identities during onboarding or other processes is crucial. With frequent identity theft and online fraud, hackers can gain access to user accounts and misuse funds and information.\"}),/*#__PURE__*/t(\"p\",{children:[\"In 2023, data breaches in the U.S. hit a record high, impacting \",/*#__PURE__*/e(i,{href:\"https://www.iii.org/fact-statistic/facts-statistics-identity-theft-and-cybercrime\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"353 million individuals\"})}),\". Online payment fraud is expected to cost businesses \",/*#__PURE__*/e(i,{href:\"https://aag-it.com/the-latest-cyber-crime-statistics/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"$343 billion\"})}),\" between 2023-2027!\"]}),/*#__PURE__*/e(\"p\",{children:\"An easy way to avoid such fraud is to utilize OTP-based verification. However, given that OTP verification is such an essential part of app functionality, it tends to be quite expensive for app builders, especially if they are at the startup stage. Figuring out which OTP providers work best for them is another important (but somewhat tedious) task CTOs and engineering teams must work out for themselves.\"}),/*#__PURE__*/t(\"p\",{children:[\"To make their lives a little easier, I\u2019ve compiled a list of \",/*#__PURE__*/e(\"strong\",{children:\"OTP providers\"}),\" who provide guaranteed state-of-the-art services to match your app\u2019s technical needs, regardless of user volume or industry.\"]}),/*#__PURE__*/e(\"h2\",{children:\"What is an OTP Service Provider?\"}),/*#__PURE__*/e(\"p\",{children:\"An OTP (One-Time Password) service provider offers the infrastructure and tools you need to generate, send, and verify one-time passwords for user authentication.\"}),/*#__PURE__*/e(\"p\",{children:\"These providers typically offer APIs or SDKs that can be integrated into a business's existing systems, enabling easy and seamless OTP-based authentication. This type of service can be used to protect your users' accounts with two-factor authentication or to add an extra layer of security to a sensitive action such as a payment.\"}),/*#__PURE__*/e(\"h2\",{children:\"What features should you look for in your SMS OTP provider?\"}),/*#__PURE__*/e(\"h3\",{children:\"Speed and reliability\"}),/*#__PURE__*/e(\"p\",{children:\"The OTP should reach the intended customer\u2019s phone within seconds. If more than a couple of seconds pass between a customer\u2019s input and receiving the OTP, you can chalk that up to a bad user experience.\"}),/*#__PURE__*/e(\"h3\",{children:\"Adequate security features\"}),/*#__PURE__*/t(\"p\",{children:[\"In the current age, \u201Cadequate\u201D would translate to \u201Chigh-level,\u201D in all honesty. The \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-otp-definition\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"dOqlOqqG6\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS OTP\"})}),\" service provider should be able to \",/*#__PURE__*/e(i,{href:{webPageId:\"Fn_57vtl3\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"detect fraud\"})}),\" when requesting and sending the OTP.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Regulatory compliance\"}),/*#__PURE__*/e(\"p\",{children:\"Your service provider should comply with all legal regulations that apply to your chosen industry and region.\"}),/*#__PURE__*/e(\"h3\",{children:\"Easy setup\"}),/*#__PURE__*/t(\"p\",{children:[\"If you\u2019re looking for \",/*#__PURE__*/e(i,{href:{webPageId:\"jHZR0p4bq\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"SMS verification that helps you grow\"})}),\", start at the beginning. The SMS API in question should be easy to download, integrate with your system, and activate. The provider should also offer clear documentation and developer-friendly setup pipelines to simplify and speed up the initial processes.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Integrates with other applications\"}),/*#__PURE__*/e(\"p\",{children:\"Integrating third-party apps is essential for any modern, customer-facing software to function. Your chosen provider should provide integration with multiple other applications, enabling it to provide OTPs for customers across different apps and software systems.\"}),/*#__PURE__*/e(\"h3\",{children:\"Solid customer support\"}),/*#__PURE__*/e(\"p\",{children:\"You should be able to connect with the service provider whenever you have a roadblock. Choose a vendor with 24/7 support and one ready to put down a quick Average Speed to Answer in their SLAs.\"}),/*#__PURE__*/e(\"h3\",{children:\"Transparent pricing and service details\"}),/*#__PURE__*/t(\"p\",{children:[\"The best OTP service provider will give you complete transparency into the details of your pricing and what you\u2019re paying for. Prelude, a French OTP provider, charges less per SMS and includes fraud protection. Prelude also provides \",/*#__PURE__*/e(i,{href:{webPageId:\"Ybj1K_p92\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"a dashboard\"})}),\" where customers can see exactly what their money is being used for. Throughout the month, you can view a dashboard and see how your SMS costs are being factored and savings per SMS sent.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Flexible billing\"}),/*#__PURE__*/e(\"p\",{children:\"You should be able to adjust your billing based on your usage. Once again, Prelude allows you to pay for more expensive routes to increase conversion. If not, they choose the cheapest and fastest route by examining multiple carriers and choosing one that costs the least without affecting delivery.\"}),/*#__PURE__*/e(\"h2\",{children:\"The 3 Best OTP Service Providers to secure your customers\"}),/*#__PURE__*/e(\"h3\",{children:\"\uD83E\uDD47 Prelude\"}),/*#__PURE__*/t(\"p\",{children:[\"Prelude provides \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"sms-verification-guide\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"m82loUu04\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:/*#__PURE__*/e(\"strong\",{children:\"SMS verification\"})})}),\" and onboarding infrastructure through a set of unified APIs developers might actually like. We\u2019re dedicated to more reliable fraud detection, elegant transparency, and increased reliability \u2014 all at a better price.\"]}),/*#__PURE__*/e(\"h4\",{children:\"Why Prelude stands out\"}),/*#__PURE__*/e(\"p\",{children:\"We\u2019ve noticed here at Prelude that our customers come to us when they face one of the following issues:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They receive a hefty bill from their OTP provider and don\u2019t understand why it\u2019s so exorbitant. Generally, they are being charged for fraud.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They\u2019re trying to build an app and need SMS verification services that don\u2019t cost them a small fortune.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They need a vendor who understands how fast startups need to move and build\u2026and supports them with lightning-fast customer support and assistance.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"At Prelude, we try to solve both problems with our pricing model and dashboard.\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"In general, businesses cut their SMS verification costs by \",/*#__PURE__*/e(\"strong\",{children:\"30-40%\"}),\" when switching to Prelude while increasing conversion from SMS sent to SMS entered in your app\u2026 compared to their previous provider.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Prelude \",/*#__PURE__*/e(\"strong\",{children:\"costs less\"}),\". We charge less for fraud protection and your carrier fee. Customers can also choose to optimize OTP delivery for cost or conversion. Prelude will examine multiple carriers and find the best route for the lowest price if you choose the former. If we find a better route for less, we switch you to this route and give you the money back.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Feel free to review what Prelude charges per SMS in every country on the \",/*#__PURE__*/e(i,{href:\"https://prelude.so/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"public website\"})}),\". On average, our prices are 60% below market price while offering \",/*#__PURE__*/e(\"strong\",{children:\"multi-routing\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"antispam\"}),\" protection.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Prelude offers a \",/*#__PURE__*/e(\"strong\",{children:\"dashboard\"}),\" where customers can see how their SMS costs are being factored in and the savings they get with every SMS sent. Customers get complete transparency and know exactly what they are paying for.\"]})})]}),/*#__PURE__*/e(\"img\",{alt:\"prelude dashboard\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,AcEE7F4R5JBxkkoTxJldT2Hk.png\",\"data-framer-height\":\"1086\",\"data-framer-width\":\"1990\",height:\"543\",src:\"https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png\",srcSet:\"https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png?scale-down-to=512 512w,https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/AcEE7F4R5JBxkkoTxJldT2Hk.png 1990w\",style:{aspectRatio:\"1990 / 1086\"},width:\"995\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Additionally\"}),\" :\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Prelude uses cross-signal risk scoring to identify spam with the highest possible accuracy. That means we only send OTP SMS to real users.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Prelude\u2019s granular approach to fraud detection lets companies connect with real users in countries known for frequent fraudulent traffic (e.g., emerging markets like Vietnam and Brazil).\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The Prelude dashboard provides analytical insight into acquisition numbers by country, platform, and application version. Customers can also view acquisition costs in real-time, as well as conversion rate and time to convert.\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"\uD83E\uDD48 Twilio\u2019s Verify API\"}),/*#__PURE__*/e(\"p\",{children:\"Among the many communication APIs it offers, Twilio also provides the Verify API, which is designed to offer OTP services, i.e., two-factor authentication (2FA) via SMS, email, and voice calls at a price.\"}),/*#__PURE__*/e(\"h4\",{children:\"Why Twilio stands out\"}),/*#__PURE__*/e(\"p\",{children:\"It enables customers to customize the content of SMSes, emails, and voice calls, which is important for branding and user experience. It supports multiple channels for verification, such as SMS, email, passkeys, WhatsApp, voice calls, etc.\"}),/*#__PURE__*/e(\"p\",{children:\"Twilio allows customers to establish rate limits on verification attempts and set particular expiration dates/times for OTPs and offers cross-platform support, making it usable across web, mobile, and IoT programs.\"}),/*#__PURE__*/e(\"p\",{children:\"The language of the OTP can be changed as required. The API comes with multi-language support and provides tools for tracking verification attempts, successes, and errors.\"}),/*#__PURE__*/e(\"p\",{children:\"It has built-in features to protect against threats like brute force and unauthorized access. It has a highly scalable infrastructure capable of handling large numbers of verification attempts and is compliant with regulations such as GDPR and CCPA.\"}),/*#__PURE__*/e(\"img\",{alt:\"twilio otp service provider\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,AMdivekFW3Ex4R6TxfFq1bh0Tew.png\",\"data-framer-height\":\"1607\",\"data-framer-width\":\"3344\",height:\"803\",src:\"https://framerusercontent.com/images/AMdivekFW3Ex4R6TxfFq1bh0Tew.png\",srcSet:\"https://framerusercontent.com/images/AMdivekFW3Ex4R6TxfFq1bh0Tew.png?scale-down-to=512 512w,https://framerusercontent.com/images/AMdivekFW3Ex4R6TxfFq1bh0Tew.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/AMdivekFW3Ex4R6TxfFq1bh0Tew.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/AMdivekFW3Ex4R6TxfFq1bh0Tew.png 3344w\",style:{aspectRatio:\"3344 / 1607\"},width:\"1672\"}),/*#__PURE__*/e(\"p\",{children:\"Customers pay for Twilio\u2019s Verify API based on:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The number of times the customer tries to verify a user\u2019s phone number. Each attempt costs a fixed rate, which differs based on factors like geography.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The number of times a customer checks details about a phone number, such as its carrier or type (landline/mobile).\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"\uD83E\uDD49 Vonage\u2019s Verify API\"}),/*#__PURE__*/e(\"p\",{children:\"Yes, Vonage offers a Verify API of its own. Much like the other names on this list, the Vonage Verify API helps brands and businesses authenticate users\u2019 phone numbers via SMS, voice, etc. It provides 2FA authentication built on Vonage\u2019s patented tech and can be used without any telecom or security experience.\"}),/*#__PURE__*/e(\"h4\",{children:\"Why Vonage stands out\"}),/*#__PURE__*/e(\"p\",{children:\"It enables verification of phone numbers via SMS, calls, WhatsApp, email, and Silent Authentication.\"}),/*#__PURE__*/e(\"p\",{children:\"Vonage enables 2FA authentication for registration or user login and supports number verification and OTP delivery across the globe.\"}),/*#__PURE__*/e(\"p\",{children:\"It allows customizing messages to customers, which is helpful for branding purposes and offers a retry option for OTP delivery: the OTP is automatically resent if the initial verification attempt fails.\"}),/*#__PURE__*/e(\"p\",{children:\"Vonage provides detailed reports on delivery and status, helping businesses track success/failure rates and carries in-built security features to protect user data, such as data encryption in transit and at rest. With scalable and equipped with dev-friendly docs, SDKs, and code samples, customers only have to pay for successful verifications.\"}),/*#__PURE__*/e(\"img\",{alt:\"vonage otp service provider\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,hIolU3z7rdnAw1PyqcCG85TLTE.png\",\"data-framer-height\":\"1615\",\"data-framer-width\":\"3344\",height:\"807\",src:\"https://framerusercontent.com/images/hIolU3z7rdnAw1PyqcCG85TLTE.png\",srcSet:\"https://framerusercontent.com/images/hIolU3z7rdnAw1PyqcCG85TLTE.png?scale-down-to=512 512w,https://framerusercontent.com/images/hIolU3z7rdnAw1PyqcCG85TLTE.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/hIolU3z7rdnAw1PyqcCG85TLTE.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/hIolU3z7rdnAw1PyqcCG85TLTE.png 3344w\",style:{aspectRatio:\"3344 / 1615\"},width:\"1672\"}),/*#__PURE__*/e(\"h2\",{children:\"How to choose the right SMS OTP service provider?\"}),/*#__PURE__*/e(\"p\",{children:\"As you can see, there are a lot of different providers, each with their own specific features and advantages. So how can you be sure you're choosing the right one for your business?\"}),/*#__PURE__*/e(\"h3\",{children:\"1/ List your requirements when it comes to OTP\"}),/*#__PURE__*/e(\"p\",{children:\"Before contacting a supplier, make sure you know what your real needs are. Think about the volume of OTP you need now and in the medium term, because you want to choose a supplier who can support you as you grow. Also make a list of your main markets and your current OTP conversion rate to check whether your future supplier is able to compete.\"}),/*#__PURE__*/e(\"p\",{children:\"For instance, if you want to send marketing messages and initiate two-way conversations on messaging platforms, Twilio or Vonage are your answer. Choose Prelude if you want flawless, fraud-less, low-price SMS & OTP verification. That\u2019s all we do, and we do it very well. We offer lower prices, better fraud protection, more transparency, fewer outages, and round-the-clock support (for real).\"}),/*#__PURE__*/e(\"h3\",{children:\"2/ Think about your must-have features\"}),/*#__PURE__*/e(\"p\",{children:\"To go beyond volume, you can draw up a list of must-have features and nice-to-have features. For example, if your business suffers from SMS pumping fraud, a must-have feature might be the supplier's ability to mitigate that fraud. Delivery rates, analytics, ability to personnalise OTP messages, responsive support, available channels: think of all the features and services you need!\"}),/*#__PURE__*/e(\"h3\",{children:\"3/ Evaluate pricing\"}),/*#__PURE__*/e(\"p\",{children:\"Once you have shot-listed some providers that meet your needs, be sure to evaluate their pricing models. Be aware of any hidden charges a provider might add and assess how that pricing structure would fit with your volume of OTP messages. Some providers offer volume discounts for companies that reach a certain amount of messages, so it may be worth discussing this directly with their sales teams.\"}),/*#__PURE__*/e(\"h3\",{children:\"4/ Test the service\"}),/*#__PURE__*/e(\"p\",{children:\"Whether you sign up directly for a free trial or the provider offers one, it's always a good idea to test the service before going ahead with a full migration. It's at this stage that you'll be able to determine whether this new provider is right for you, whether the results are in line with your expectations, whether you can derive a positive return on investment from this migration and whether the user interface suits you.\"}),/*#__PURE__*/e(\"h2\",{children:\"See Prelude in action today\"}),/*#__PURE__*/t(\"p\",{children:[\"Would you like to find out how Prelude manages user authentication differently? You can test our service directly by creating a trial account which will give you access to your own dashboard. You can also \",/*#__PURE__*/e(i,{href:{webPageId:\"AJeysDBnf\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"talk to our sales team\"})}),\" about your situation and challenges to see how we can help.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:{webPageId:\"zK1UAQzo2\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Our pricing is detailed here\"})}),\", with no hidden fees. If you need to send a large number of OTPs, you can talk to our team to see if an annual agreement is right for you!\"]})]});export const richText11=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"img\",{alt:\"ding becomes prelude\",className:\"framer-image\",\"data-framer-asset\":\"data:framer/asset-reference,80sX4NTUhXnL7MDY4sMO0WDZnbA.png\",\"data-framer-height\":\"407\",\"data-framer-width\":\"1200\",height:\"203\",src:\"https://framerusercontent.com/images/80sX4NTUhXnL7MDY4sMO0WDZnbA.png\",srcSet:\"https://framerusercontent.com/images/80sX4NTUhXnL7MDY4sMO0WDZnbA.png?scale-down-to=512 512w,https://framerusercontent.com/images/80sX4NTUhXnL7MDY4sMO0WDZnbA.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/80sX4NTUhXnL7MDY4sMO0WDZnbA.png 1200w\",style:{aspectRatio:\"1200 / 407\"},width:\"600\"}),/*#__PURE__*/t(\"p\",{children:[\"Today, we\u2019re announcing our rebrand from Ding to \",/*#__PURE__*/e(i,{href:\"https://prelude.so/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Prelude\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"When we launched Ding, we were hyper-focused on \",/*#__PURE__*/e(\"strong\",{children:\"phone verification\"}),\". Tens of millions of successful verifications later, we have a better sense of how we best serve our customers and our market. Prelude isn\u2019t just a new name, it\u2019s a commitment to building mobile-first onboarding developers and teams love.\"]}),/*#__PURE__*/e(\"p\",{children:\"As we\u2019ve worked to evolve the verification space, we realised that the future of mobile onboarding won\u2019t necessarily make a \u201Cding\u201D sound and our vision expanded into additional mobile-first onboarding services. \"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Think: KYC, session management, contextualised fraud prevention, zero SMS phone verification, and more.\"}),\" Onboarding conversion (and down-funnel retention) is the first thing and the hardest thing to master for building growth\u2013and that\u2019s the problem we want to solve for our customers. That and making sure their new users are real people and not fraud.\"]}),/*#__PURE__*/e(\"p\",{children:\"We want to help you perfect the prelude of your product.\"}),/*#__PURE__*/e(\"p\",{children:\"As we hinted at earlier, we\u2019re continuing to build out API services to help you verify, onboard, and trust new users as they enter your mobile app. This is our core product and you can count on us to help you verify new users and send OTP codes with the most reliable SMS and multichannel verification.\"}),/*#__PURE__*/t(\"p\",{children:[\"It\u2019s our goal and mission to more effectively \",/*#__PURE__*/e(i,{href:{webPageId:\"Fn_57vtl3\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"stop fraud\"})}),\" while offering industry-leading support and a more transparent platform. We\u2019re built for developers at modern tech companies that need to move faster than they can with big company alternatives\u2013and we\u2019re cheaper as you grow and scale. We\u2019re trusted by more than 40 companies like \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"why-bereal-chose-prelude-to-better-serve-customer-increase-conversion\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"tmfE2PKCN\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"BeReal\"})}),\", \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"why-feels-founder-relied-on-prelude-to-scale-growth\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"xCIWa6Lt0\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Feels\"})}),\", Bitstack, \",/*#__PURE__*/e(i,{href:{pathVariables:{g3uDruQ2t:\"why-startups-and-developers-prefer-prelude-a-case-study-with-locket\"},unresolvedPathSlugs:{g3uDruQ2t:{collectionId:\"RxkZ6cAsR\",collectionItemId:\"jO9Lx98FZ\"}},webPageId:\"Io5lOVoj4\"},motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"Locket\"})}),\", and more.\"]}),/*#__PURE__*/e(\"p\",{children:\"Here\u2019s to the beginning of something better. Here\u2019s to Prelude.\"}),/*#__PURE__*/t(\"p\",{children:[\"To stay up-to-date on product releases and mobile-first industry news, we\u2019re building out our blog (\",/*#__PURE__*/e(i,{href:\"https://prelude.so/blog\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"follow along here\"})}),\") & sending regular product updates.\"]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"How does this impact me?\"})}),/*#__PURE__*/t(\"p\",{children:[\"As a current customer, you\u2019ll notice that our branding will be updated from Ding to Prelude. This means that our domain will change from ding.live to \",/*#__PURE__*/e(i,{href:\"https://prelude.so/\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"prelude.so\"})}),\". You\u2019ll also start receiving emails from \",/*#__PURE__*/e(i,{href:\"mailto:hello@prelude.so\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"hello@prelude.so\"})}),\". Make sure to pull us into your primary inbox for updates on your traffic and other core product updates.\"]}),/*#__PURE__*/e(\"p\",{children:\"You\u2019ll also notice that our dashboard and related marketing materials will come from Prelude.\"}),/*#__PURE__*/t(\"p\",{children:[\"Our social handles have also been updated to @UsePrelude and Prelude on LinkedIn. You can still hear from Matias at \",/*#__PURE__*/e(i,{href:\"https://twitter.com/berny_matias\",motionChild:!0,nodeId:\"RxkZ6cAsR\",openInNewTab:!0,smoothScroll:!1,children:/*#__PURE__*/e(n.a,{children:\"@berny_matias\"})}),\". He\u2019s keeping his name. And still sharing info on the industry semi-regularly. ;)\"]}),/*#__PURE__*/e(\"p\",{children:\"Other than this, there\u2019s nothing you need to do. The API endpoints will be maintained for the foreseeable future to ensure a smooth transition for all of our current customers. Of course, as we\u2019re a growing company, and the more customers we have the cheaper your rates, with more business comes more savings since we can negotiate with greater volume while selling the SMS at cost; it\u2019s a flywheel in which we pass the savings back to our customers. So, we\u2019d love a mention to other founders in the mobile-first space.\"})]});\nexport const __FramerMetadata__ = {\"exports\":{\"richText10\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText9\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText5\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText1\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText11\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText8\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText4\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText7\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText6\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["richText", "u", "x", "p", "Link", "motion", "richText1", "richText2", "richText3", "richText4", "ComponentPresetsConsumer", "t", "CodeBlock_default", "richText5", "richText6", "richText7", "richText8", "richText9", "richText10", "richText11", "__FramerMetadata__"]
}
