{"id":560,"date":"2017-06-08T14:08:19","date_gmt":"2017-06-08T14:08:19","guid":{"rendered":"http:\/\/devser.net\/moveoapps-redesign\/blog\/?p=560"},"modified":"2019-09-25T11:19:58","modified_gmt":"2019-09-25T11:19:58","slug":"how-to-implement-phone-number-verification-with-sinch-sdk-in-ios","status":"publish","type":"post","link":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/","title":{"rendered":"How to implement Phone Number Verification with Sinch SDK in iOS &#8211; A Quick Guide"},"content":{"rendered":"<p class=\"p1\"><span class=\"s1\">Phone number <\/span><span class=\"s2\">verification (or validation) services are online services used to check whether or not a given<!--more--> phone number is in service. Several companies provide SDKs or APIs to integrate this functionality on mobile platforms (iOS\/Android).<\/span><\/p>\n<p><a href=\"https:\/\/www.sinch.com\/\"><span class=\"s3\">Sinch<\/span><\/a> is platform which provides phone verification, messaging, voice calling and video calling services on mobile platforms. In this article, we will discuss phone number verification.<\/p>\n<p class=\"p1\"><span class=\"s1\">There are two types of verification methods provided by Sinch for iOS:<\/span><\/p>\n<p><b><\/b><span class=\"s2\"><b>1) SMS Verification: <\/b>A one-time pin code will be sent to the phone number via SMS. Sinch can verify the user\u2019s phone number with that pin code.<\/span><\/p>\n<p><span class=\"s2\"><b>2) Voice\/Callout Verification:<\/b> An automated voice verification call is made to the user and a voice prompt is made via text-to-speech. An appropriate response to the voice prompt determines if the phone number is in service.<\/span><\/p>\n<p><span class=\"s1\">We will now learn about SMS verification programming. For this, first create an app on Sinch Developer account. <\/span><\/p>\n<h3 class=\"p2\"><span class=\"s1\"><b>Create App on Sinch<\/b><\/span><span class=\"s2\"><br \/>\n<\/span><\/h3>\n<p class=\"p3\"><span class=\"s1\">Upon registration, you will be asked to create a new app. This is where you need to provide an application name and description.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-579\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image2.png\" alt=\"Create Your App\" width=\"1857\" height=\"803\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image2.png 1857w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image2-300x130.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image2-768x332.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image2-1024x443.png 1024w\" sizes=\"auto, (max-width: 1857px) 100vw, 1857px\" \/><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">After this, you will be asked to specify the task you want to perform \u2013 verification or calling. Select \u2018#VERIFICATION.\u2019<\/span><\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-580\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image3.png\" alt=\"Select Verification\" width=\"1858\" height=\"798\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image3.png 1858w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image3-300x129.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image3-768x330.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image3-1024x440.png 1024w\" sizes=\"auto, (max-width: 1858px) 100vw, 1858px\" \/><\/p>\n<p class=\"p1\"><span class=\"s1\">Finally, you will be asked to specify the platform. Select \u2018iOS.\u2019<\/span><\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-581\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image4.png\" alt=\"Select Platform\" width=\"1857\" height=\"798\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image4.png 1857w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image4-300x129.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image4-768x330.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image4-1024x440.png 1024w\" sizes=\"auto, (max-width: 1857px) 100vw, 1857px\" \/><\/p>\n<p class=\"p1\"><span class=\"s1\">Application credentials are available on Sinch Dashboard, which will be used in the code. Hostname, Key and Secret will be used inside the Xcode project.<\/span><\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-582\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image5.png\" alt=\"Sinch Dashboard\" width=\"1918\" height=\"841\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image5.png 1918w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image5-300x132.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image5-768x337.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image5-1024x449.png 1024w\" sizes=\"auto, (max-width: 1918px) 100vw, 1918px\" \/><\/p>\n<h3 class=\"p1\"><span class=\"s1\"><b>Setup Sinch SDK in Xcode<\/b><\/span><\/h3>\n<p class=\"p3\"><span class=\"s1\"><b>Install through CocoaPods<\/b><br \/>\n<\/span><\/p>\n<p class=\"p3\"><span class=\"s1\">Install Sinch via CocoaPods (pod &#8216;SinchVerification&#8217; or pod &#8216;SinchVerification-Swift&#8217;) or download it on <a href=\"https:\/\/www.sinch.com\/downloads\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.sinch.com\/downloads\/<\/a><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">Pod File coded as follows:<br \/>\n<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\"><i>Objective-C<\/i><\/span><\/p>\n<pre># Uncomment the next line to define a global platform for your project\r\nplatform :ios, '9.0'\r\n\r\ntarget 'SinchVerificationObjC' do\r\n  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks\r\n  # use_frameworks!\r\n\r\n  # Pods for SinchVerificationObjC\r\n\r\n    pod 'SinchVerification'\r\n\r\nend\r\n<\/pre>\n<p class=\"p1\"><span class=\"s1\"><i>Swift<\/i><\/span><\/p>\n<pre># Uncomment the next line to define a global platform for your project\r\nplatform :ios, '9.0'\r\n\r\ntarget 'SinchVerificationSwift' do\r\n  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks\r\n  use_frameworks!\r\n\r\n  # Pods for SinchVerificationSwift\r\n\r\n    pod 'SinchVerification-Swift'\r\n\r\nend<\/pre>\n<blockquote><p>Read also:<a href=\"https:\/\/www.moveoapps.com\/blog\/decoding-xcode-9-things-you-should-be-aware-of\/\">Decoding Xcode 9 \u2013 7 Things You Should Be Aware Of<\/a><\/p><\/blockquote>\n<h3 class=\"p1\"><span class=\"s1\"><b>Let\u2019s Learn about SMS Verification by Sinch<\/b><\/span><\/h3>\n<p class=\"p3\"><span class=\"s1\">Verification of a phone number is performed in two steps, a verification SMS is requested and a verification code (a 4-digit pin number) for that particular verification session is sent to the recipient via SMS. It\u2019s the responsibility of the developer to ask the end-user to provide the verification code from the SMS.<\/span><\/p>\n<p><b>Request for SMS Verification:<\/b><\/p>\n<p>For this process, you have to create an object of Sinch Verification and use that object to initialize the verification process.<\/p>\n<p class=\"p3\"><span class=\"s1\">For the request you have to pass\u00a0two parameters with the function\u00a0\u2013 (a). The Sinch Application Key from credentials of app, which is available on the Sinch dashboard, and (b). The formatted phone number, like (+xx xxxxxxxxxx). If you don\u2019t provide a properly formatted phone number, the Sinch verification throws a specific error (In the sample code below, I have displayed error in alert).<\/span><\/p>\n<p>Declaration:<\/p>\n<p class=\"p1\"><span class=\"s1\"><i>Objective-C<\/i><\/span><\/p>\n<pre class=\"p3\">#import \r\n\r\n@interface PhoneNumberEntryVC : UIViewController {\r\n    id _verification;\r\n}\r\n<\/pre>\n<p class=\"p1\"><span class=\"s1\"><i>Swift<\/i><\/span><\/p>\n<pre class=\"p1\"><span class=\"s1\">import SinchVerification\r\n<\/span>\r\n<span class=\"s1\">class PhoneNumberEntryVC: UIViewController {<\/span>\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>var verification : Verification!<\/span>\r\n<span class=\"s1\">}<\/span><\/pre>\n<p class=\"p1\"><span class=\"s1\">Initialization:<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\"><i>Objective-C<\/i><\/span><\/p>\n<pre class=\"p1\">_verification = [SINVerification SMSVerificationWithApplicationKey:@\"SINCH API KEY\" phoneNumber:@\"PHONE NUMBER\"];\r\n[_verification initiateWithCompletionHandler:^(id  _Nonnull result, NSError * _Nullable error) {\r\n    if (result.success == YES) {\r\n        \/\/Process the flow and display UI for verification of code\r\n    }\r\n    else {\r\n        UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@\"\" message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert];\r\n        [alertVC addAction:[UIAlertAction actionWithTitle:@\"Ok\" style:UIAlertActionStyleCancel handler:nil]];\r\n        [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertVC animated:YES completion:nil];\r\n    }\r\n}];<\/pre>\n<p><i>Swift<\/i><\/p>\n<pre class=\"p1\">verification = SMSVerification(\"SINCH API KEY\", phoneNumber: \"PHONE NUMBER\")\r\nverification.initiate { (initiationResult, error) in\r\n    if initiationResult.success == true {\r\n        \/\/Process the flow and display UI for verification of code\r\n    }\r\n    else {\r\n        let alertVC = UIAlertController(title: \"\", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.alert)\r\n        alertVC.addAction(UIAlertAction(title: \"Ok\", style: UIAlertActionStyle.cancel, handler: nil))\r\n        UIApplication.shared.keyWindow!.rootViewController!.present(alertVC, animated: true, completion: nil)\r\n    }\r\n}\r\n<\/pre>\n<p class=\"p1\"><span class=\"s1\">With the above code, you will get an SMS on the provided phone number, containing the verification code (generally a 4-digit number).<\/span><\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-584\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image6.png\" alt=\"SMS\" width=\"451\" height=\"109\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image6.png 451w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image6-300x73.png 300w\" sizes=\"auto, (max-width: 451px) 100vw, 451px\" \/><\/p>\n<p class=\"p1\"><span class=\"s1\"><b>Validation of verification code:<\/b><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">To complete verification of the phone number, the user has to enter the code from the SMS into the application. <\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">For validation, you have to enter the code which is SMSed to your phone. This code will be passed to the object we created in the first screen. So, if you are managing two screens for this process, then you have to pass the first screen object to the second screen.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\"><i>Objective-C<\/i><\/span><\/p>\n<pre class=\"p1\">[self.verification verifyCode:@\"VERIFICATION CODE\" completionHandler:^(BOOL success, NSError* error) {\r\n if (success) {\r\n \/\/ Phone number was successfully verified, do further process.\r\n } else {\r\n \/\/ Ask user to re-attempt verification\r\n UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@\"\" message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert];\r\n [alertVC addAction:[UIAlertAction actionWithTitle:@\"Ok\" style:UIAlertActionStyleCancel handler:nil]];\r\n [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertVC animated:YES completion:nil];\r\n }\r\n}];<\/pre>\n<p class=\"p1\"><i>Swift<\/i><\/p>\n<pre class=\"p1\">verification.verify(\"VERIFICATION CODE\") { (isSuccess, error) in\r\n if isSuccess == true {\r\n \/\/ Phone number was successfully verified, do further process.\r\n }\r\n else {\r\n let alertVC = UIAlertController(title: \"\", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.alert)\r\n alertVC.addAction(UIAlertAction(title: \"Ok\", style: UIAlertActionStyle.cancel, handler: nil))\r\n UIApplication.shared.keyWindow!.rootViewController!.present(alertVC, animated: true, completion: nil)\r\n }\r\n}<\/pre>\n<p class=\"p1\"><span class=\"s1\">The SMS verification process is done! You can now display to users that they have successfully verified their phone number.<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"356\" class=\"aligncenter size-full wp-image-585\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image7-e1496927620185.png\" alt=\"\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"353\" class=\"aligncenter size-full wp-image-586\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image8-e1496927606624.png\" alt=\"\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"357\" class=\"aligncenter size-full wp-image-587\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image9-e1496927593733.png\" alt=\"\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"p1\"><span class=\"s1\"><i>Note: Your user interface design should be like this.<\/i><\/span><\/p>\n<h3 class=\"p1\"><span class=\"s1\"><b>Let\u2019s Learn about Voice\/Callout Verification by Sinch<\/b><\/span><\/h3>\n<p class=\"p3\"><span class=\"s1\">Verification of phone number with Callout is performed in only one step. A call will be requested with phone number. Voice verification will call to a user\u2019s phone and play a voice to verify the user. User will be asked to act as per instructions on call.<br \/>\n<\/span><\/p>\n<p class=\"p3\"><span class=\"s1\">Similar to SMS verification, Sinch provides functionality to initialize verification object by call functionality. You have to enter the Sinch API key and formatted phone number.<\/span><\/p>\n<p>Initialize the verification object by callout verification.<\/p>\n<p><i>Objective-C<\/i><\/p>\n<pre class=\"p3\">_verification = [SINVerification calloutVerificationWithApplicationKey:SINCH_APP_KEY phoneNumber:@\"PHONE NUMBER\"];<\/pre>\n<p class=\"p1\"><span class=\"s1\"><i>Swift <\/i><\/span><\/p>\n<pre class=\"p1\">verification = CalloutVerification(SINCH_APP_KEY, phoneNumber: \"PHONE NUMBER\")<\/pre>\n<p class=\"p1\"><span class=\"s1\">After the initialization of verification, initiate the verification process.<\/span><\/p>\n<p class=\"p2\"><span class=\"s1\"><i>Objective-C<\/i><br \/>\n<\/span><\/p>\n<pre class=\"p3\">[_verification initiateWithCompletionHandler:^(id _Nonnull result, NSError * _Nullable error) {\r\n if (result.success == YES) {\r\n \/\/ Phone number was successfully verified, do further process.\r\n }\r\n else {\r\n UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@\"\" message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert];\r\n [alertVC addAction:[UIAlertAction actionWithTitle:@\"Ok\" style:UIAlertActionStyleCancel handler:nil]];\r\n [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertVC animated:YES completion:nil];\r\n }\r\n}];<\/pre>\n<p class=\"p1\"><span class=\"s1\"><i>Swift<\/i><\/span><\/p>\n<pre class=\"p1\">verification.initiate { (initiationResult, error) in\r\n if initiationResult.success == true {\r\n self.performSegue(withIdentifier: \"pushToSuccessVC\", sender: nil)\r\n }\r\n else {\r\n let alertVC = UIAlertController(title: \"\", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.alert)\r\n alertVC.addAction(UIAlertAction(title: \"Ok\", style: UIAlertActionStyle.cancel, handler: nil))\r\n UIApplication.shared.keyWindow!.rootViewController!.present(alertVC, animated: true, completion: nil)\r\n }\r\n}<\/pre>\n<p class=\"p1\"><span class=\"s1\">If the phone number formatting is not done properly, or the phone number field is empty or the callout verification is not verified on the user\u2019s phone, you will get an error.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">You can say it is a one-step authorization process. Callout Verification process is now complete! You can display to users that they have successfully verified their number.<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"356\" class=\"aligncenter size-full wp-image-589\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image10-e1496927578238.png\" alt=\"\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"355\" class=\"aligncenter size-full wp-image-590\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image11-e1496927541650.png\" alt=\"\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"p1\"><span class=\"s1\"><i>Note: Your user interface design should be like this.<\/i><\/span><\/p>\n<h3 class=\"p4\"><span class=\"s1\"><b>Reports of Verification<\/b><\/span><\/h3>\n<p class=\"p1\"><span class=\"s1\">Reports are available on the Sinch dashboard. Log in with your account and find the reports as well as charts for the verification, voice, messages, and more. <\/span><\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-592\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image12.png\" alt=\"Reports\" width=\"1901\" height=\"905\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image12.png 1901w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image12-300x143.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image12-768x366.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/image12-1024x487.png 1024w\" sizes=\"auto, (max-width: 1901px) 100vw, 1901px\" \/><\/p>\n<p class=\"p1\"><span class=\"s1\">That\u2019s it! This is how you can perform SMS verification and Callout verification using Sinch.<br \/>\n<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">Hope you liked the article. <\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">Happy Coding!<\/span><\/p>\n<blockquote><p>Read also:<a href=\"https:\/\/www.moveoapps.com\/blog\/migrating-objective-c-programs-to-swift-guide-for-ios-developers\/\">Migrating Your Objective-C Programs to Swift \u2013 A Simplified Guide for iOS Developers<\/a><\/p><\/blockquote>\n<p><script type=\"text\/javascript\" src=\"\/\/newsharecounts.s3-us-west-2.amazonaws.com\/nsc.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Phone number verification (or validation) services are online services used to check whether or not a given<\/p>\n","protected":false},"author":101027,"featured_media":1400,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30],"tags":[],"class_list":["post-560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement Phone Number Verification with Sinch SDK in iOS \u2013 A Quick Guide<\/title>\n<meta name=\"description\" content=\"This article shows you step by step process on how to implement SMS verification and Callout Verification using Sinch.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement Phone Number Verification with Sinch SDK in iOS \u2013 A Quick Guide\" \/>\n<meta property=\"og:description\" content=\"This article shows you step by step process on how to implement SMS verification and Callout Verification using Sinch.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"Moveo Apps\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-08T14:08:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-25T11:19:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1294\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Gunjan Bhavsar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gunjan Bhavsar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/\",\"name\":\"How to implement Phone Number Verification with Sinch SDK in iOS \u2013 A Quick Guide\",\"isPartOf\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png\",\"datePublished\":\"2017-06-08T14:08:19+00:00\",\"dateModified\":\"2019-09-25T11:19:58+00:00\",\"author\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f78d302c017914e7aaa78d6c0b8fa805\"},\"description\":\"This article shows you step by step process on how to implement SMS verification and Callout Verification using Sinch.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#primaryimage\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png\",\"contentUrl\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png\",\"width\":2560,\"height\":1294},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.moveoapps.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement Phone Number Verification with Sinch SDK in iOS &#8211; A Quick Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#website\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/\",\"name\":\"Moveo Apps\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.moveoapps.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f78d302c017914e7aaa78d6c0b8fa805\",\"name\":\"Gunjan Bhavsar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/Gunjan-Bhavsar-96x96.jpg\",\"contentUrl\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/Gunjan-Bhavsar-96x96.jpg\",\"caption\":\"Gunjan Bhavsar\"},\"sameAs\":[\"https:\/\/www.moveoapps.com\/\"],\"url\":\"https:\/\/www.moveoapps.com\/blog\/author\/gunjan-bhavsar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to implement Phone Number Verification with Sinch SDK in iOS \u2013 A Quick Guide","description":"This article shows you step by step process on how to implement SMS verification and Callout Verification using Sinch.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/","og_locale":"en_US","og_type":"article","og_title":"How to implement Phone Number Verification with Sinch SDK in iOS \u2013 A Quick Guide","og_description":"This article shows you step by step process on how to implement SMS verification and Callout Verification using Sinch.","og_url":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/","og_site_name":"Moveo Apps","article_published_time":"2017-06-08T14:08:19+00:00","article_modified_time":"2019-09-25T11:19:58+00:00","og_image":[{"width":2560,"height":1294,"url":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png","type":"image\/png"}],"author":"Gunjan Bhavsar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Gunjan Bhavsar","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/","url":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/","name":"How to implement Phone Number Verification with Sinch SDK in iOS \u2013 A Quick Guide","isPartOf":{"@id":"https:\/\/www.moveoapps.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png","datePublished":"2017-06-08T14:08:19+00:00","dateModified":"2019-09-25T11:19:58+00:00","author":{"@id":"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f78d302c017914e7aaa78d6c0b8fa805"},"description":"This article shows you step by step process on how to implement SMS verification and Callout Verification using Sinch.","breadcrumb":{"@id":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#primaryimage","url":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png","contentUrl":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2017\/06\/How-to-implement-Phone-Number-Verification-with-Sinch-SDK-in-iOS-\u0442\u0410\u0423-A-Quick-Guide.png","width":2560,"height":1294},{"@type":"BreadcrumbList","@id":"https:\/\/www.moveoapps.com\/blog\/how-to-implement-phone-number-verification-with-sinch-sdk-in-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.moveoapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement Phone Number Verification with Sinch SDK in iOS &#8211; A Quick Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.moveoapps.com\/blog\/#website","url":"https:\/\/www.moveoapps.com\/blog\/","name":"Moveo Apps","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.moveoapps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f78d302c017914e7aaa78d6c0b8fa805","name":"Gunjan Bhavsar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/Gunjan-Bhavsar-96x96.jpg","contentUrl":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/Gunjan-Bhavsar-96x96.jpg","caption":"Gunjan Bhavsar"},"sameAs":["https:\/\/www.moveoapps.com\/"],"url":"https:\/\/www.moveoapps.com\/blog\/author\/gunjan-bhavsar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/users\/101027"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/comments?post=560"}],"version-history":[{"count":32,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts\/560\/revisions"}],"predecessor-version":[{"id":1212,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts\/560\/revisions\/1212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/media\/1400"}],"wp:attachment":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/media?parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/categories?post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/tags?post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}