{"id":6016,"date":"2022-11-15T17:53:41","date_gmt":"2022-11-15T17:53:41","guid":{"rendered":"https:\/\/serviceobjects.wpaladdin.com\/?page_id=6016"},"modified":"2025-09-26T16:10:41","modified_gmt":"2025-09-26T23:10:41","slug":"lvi-soap","status":"publish","type":"page","link":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/","title":{"rendered":"LVI &#8211; SOAP"},"content":{"rendered":"\n<div class=\"wp-block-create-block-tabs\"><ul class=\"tab-labels\" role=\"tablist\" aria-label=\"tabbed content\"><li class=\"tab-label active\" role=\"tab\" aria-selected=\"true\" aria-controls=\"C#\" tabindex=\"0\">C#<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"Python\" tabindex=\"0\">Python<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"NodeJS\" tabindex=\"0\">NodeJS<\/li><\/ul><div class=\"tab-content\">\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong><strong><strong>Lead Validation International C# Code Snippet<\/strong><\/strong><\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\ufeffusing LVIService;\n\nnamespace lead_validation_international_dot_net.SOAP\n{\n    \/\/\/ &lt;summary>\n    \/\/\/ Provides functionality to call the ServiceObjects Lead Validation International SOAP service's ValidateLeadInternational operation,\n    \/\/\/ retrieving lead validation information (e.g., name, address, phone, email, and business details) with fallback to a backup endpoint\n    \/\/\/ for reliability in live mode.\n    \/\/\/ &lt;\/summary>\n    public class ValidateLeadInternational\n    {\n        private const string LiveBaseUrl = \"https:\/\/sws.serviceobjects.com\/LVI\/SOAP.svc\/SOAP\";\n        private const string BackupBaseUrl = \"https:\/\/swsbackup.serviceobjects.com\/LVI\/SOAP.svc\/SOAP\";\n        private const string TrailBaseUrl = \"https:\/\/trial.serviceobjects.com\/LVI\/SOAP.svc\/SOAP\";\n\n        private readonly string _primaryUrl;\n        private readonly string _backupUrl;\n        private readonly int _timeoutMs;\n        private readonly bool _isLive;\n\n        \/\/\/ &lt;summary>\n        \/\/\/ Initializes URLs\/timeout\/IsLive.\n        \/\/\/ &lt;\/summary>\n        public ValidateLeadInternational(bool isLive)\n        {\n            _timeoutMs = 10000;\n            _isLive = isLive;\n\n            if (_isLive)\n            {\n                _primaryUrl = LiveBaseUrl;\n                _backupUrl = BackupBaseUrl;\n            }\n            else\n            {\n                _primaryUrl = TrailBaseUrl;\n                _backupUrl = TrailBaseUrl;\n            }\n\n            if (string.IsNullOrWhiteSpace(_primaryUrl))\n                throw new InvalidOperationException(\"Primary URL not set.\");\n            if (string.IsNullOrWhiteSpace(_backupUrl))\n                throw new InvalidOperationException(\"Backup URL not set.\");\n        }\n\n        \/\/\/ &lt;summary>\n        \/\/\/ Asynchronously calls the ServiceObjects Lead Validation International SOAP endpoint to validate lead information,\n        \/\/\/ such as name, address, phone numbers, email, and business details. Attempts the primary endpoint first and falls\n        \/\/\/ back to the backup endpoint if the primary call fails or returns a fatal error (Error.TypeCode == \"3\"). Enforces\n        \/\/\/ a timeout using a CancellationToken to prevent hangs.\n        \/\/\/ &lt;\/summary>\n        \/\/\/ &lt;param name=\"FullName\">The contact\u2019s full name. e.g. Jane Doe&lt;\/param>\n        \/\/\/ &lt;param name=\"Salutation\">Salutation of the contact. Dr, Esq, Mr, Mrs etc&lt;\/param>\n        \/\/\/ &lt;param name=\"FirstName\">First name of the contact. e.g. Jane&lt;\/param>\n        \/\/\/ &lt;param name=\"LastName\">Last name of the contact. e.g. Doe&lt;\/param>\n        \/\/\/ &lt;param name=\"BusinessName\">The contacts company. e.g. Service Objects&lt;\/param>\n        \/\/\/ &lt;param name=\"BusinessDomain\">Website domain associated with the business. e.g. serviceobjects.com&lt;\/param>\n        \/\/\/ &lt;param name=\"BusinessEIN\">Represents the Company Tax Number. Used for Tax exempt checks for US leads.&lt;\/param>\n        \/\/\/ &lt;param name=\"Address1\">The address 1 of the contact or business address.&lt;\/param>\n        \/\/\/ &lt;param name=\"Address2\">The address 2 of the contact or business address.&lt;\/param>\n        \/\/\/ &lt;param name=\"Address3\">The address 3 of the contact or business address.&lt;\/param>\n        \/\/\/ &lt;param name=\"Address4\">The address 4 of the contact or business address.&lt;\/param>\n        \/\/\/ &lt;param name=\"Address5\">The address 5 of the contact or business address.&lt;\/param>\n        \/\/\/ &lt;param name=\"Locality\">The city of the contact\u2019s postal address.&lt;\/param>\n        \/\/\/ &lt;param name=\"AdminArea\">The state of the contact\u2019s postal address.&lt;\/param>\n        \/\/\/ &lt;param name=\"PostalCode\">The zip code of the contact\u2019s postal address.&lt;\/param>\n        \/\/\/ &lt;param name=\"Country\">The country of the contact\u2019s postal address. e.g. United States, US or USA&lt;\/param>\n        \/\/\/ &lt;param name=\"Phone2\">The secondary phone number.&lt;\/param>\n        \/\/\/ &lt;param name=\"Email\">The contact\u2019s email address.&lt;\/param>\n        \/\/\/ &lt;param name=\"IPAddress\">The contact\u2019s IP address in IPv4. (IPv6 coming in a future release)&lt;\/param>\n        \/\/\/ &lt;param name=\"Gender\">Male, Female or Neutral&lt;\/param>\n        \/\/\/ &lt;param name=\"DateOfBirth\">The contact\u2019s date of birth&lt;\/param>\n        \/\/\/ &lt;param name=\"UTCCaptureTime\">The time the lead was submitted&lt;\/param>\n        \/\/\/ &lt;param name=\"OutputLanguage\">Language field indicating what language some of the output information will be.&lt;\/param>\n        \/\/\/ &lt;param name=\"TestType\">The name of the type of validation you want to perform on this contact.&lt;\/param>\n        \/\/\/ &lt;param name=\"LicenseKey\">Your license key to use the service.&lt;\/param>\n        \/\/\/ &lt;returns>A &lt;see cref=\"Task{ContactInternational}\"\/> containing a &lt;see cref=\"ContactInternational\"\/> object with lead validation details or an error.&lt;\/returns>\n        \/\/\/ &lt;exception cref=\"Exception\">Thrown if both primary and backup endpoints fail.&lt;\/exception>\n        public async Task&lt;ContactInternational> InvokeAsync(string FullName, string Salutation, string FirstName, string LastName,\n             string BusinessName, string BusinessDomain, string BusinessEIN, string Address1, string Address2, string Address3,\n             string Address4, string Address5, string Locality, string AdminArea, string PostalCode, string Country,\n             string Phone1, string Phone2, string Email, string IPAddress, string Gender, string DateOfBirth, string UTCCaptureTime,\n             string OutputLanguage, string TestType, string LicenseKey)\n        {\n            LVISoapServiceClient clientPrimary = null;\n            LVISoapServiceClient clientBackup = null;\n\n            try\n            {\n                \/\/ Attempt Primary_URL\n                clientPrimary = new LVISoapServiceClient();\n                clientPrimary.Endpoint.Address = new System.ServiceModel.EndpointAddress(_primaryUrl);\n                clientPrimary.InnerChannel.OperationTimeout = TimeSpan.FromMilliseconds(_timeoutMs);\n\n                ContactInternational response = await clientPrimary.ValidateLeadInternationalAsync(\n                    FullName, Salutation, FirstName, LastName,\n                    BusinessName, BusinessDomain, BusinessEIN,\n                    Address1, Address2, Address3, Address4, Address5,\n                    Locality, AdminArea, PostalCode, Country,\n                    Phone1, Phone2, Email, IPAddress,\n                    Gender, DateOfBirth, UTCCaptureTime,\n                    OutputLanguage, TestType, LicenseKey).ConfigureAwait(false);\n\n                if (response == null || (response.Error != null &amp;&amp; response.Error.TypeCode == \"3\"))\n                {\n                    throw new InvalidOperationException(\"Primary endpoint returned null or a fatal TypeCode=3 error for ValidateLeadInternational\");\n                }\n                return response;\n            }\n            catch (Exception primaryEx)\n            {\n                \/\/ If primary fails, try Backup\n                try\n                {\n                    clientBackup = new LVISoapServiceClient();\n                    clientBackup.Endpoint.Address = new System.ServiceModel.EndpointAddress(_backupUrl);\n                    clientBackup.InnerChannel.OperationTimeout = TimeSpan.FromMilliseconds(_timeoutMs);\n\n                    ContactInternational response = await clientBackup.ValidateLeadInternationalAsync(\n                    FullName, Salutation, FirstName, LastName,\n                    BusinessName, BusinessDomain, BusinessEIN,\n                    Address1, Address2, Address3, Address4, Address5,\n                    Locality, AdminArea, PostalCode, Country,\n                    Phone1, Phone2, Email, IPAddress,\n                    Gender, DateOfBirth, UTCCaptureTime,\n                    OutputLanguage, TestType, LicenseKey).ConfigureAwait(false);\n                    return response;\n                }\n                catch (Exception backupEx)\n                {\n                    \/\/ If backup also fails, wrap both exceptions\n                    throw new Exception(\n                        $\"Both primary and backup endpoints failed.\\n\" +\n                        $\"Primary error: {primaryEx.Message}\\n\" +\n                        $\"Backup error: {backupEx.Message}\");\n                }\n                finally\n                {\n                    clientBackup?.Close();\n                }\n            }\n            finally\n            {\n                clientPrimary?.Close();\n            }\n        }\n\n    }\n}<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong><strong>Lead Validation International Python Code Snippet<\/strong><\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\ufefffrom suds.client import Client\nfrom suds import WebFault\nfrom suds.sudsobject import Object\n\nclass ValidateLeadInternational:\n    def __init__(self, license_key: str, is_live: bool, timeout_ms: int = 10000):\n        \"\"\"\n        license_key: Service Objects GeoPhone license key.\n        is_live: whether to use live or trial endpoints\n        timeout_ms: SOAP call timeout in milliseconds\n        \"\"\"\n        self._timeout_s = timeout_ms \/ 1000.0  # Convert to seconds\n        self._is_live = is_live\n        self.license_key = license_key\n\n        # WSDL URLs for primary and backup endpoints \n        self._primary_wsdl = (\n            \"https:\/\/sws.serviceobjects.com\/LVI\/soap.svc?wsdl\"\n            if is_live else\n            \"https:\/\/trial.serviceobjects.com\/LVI\/soap.svc?wsdl\"\n        )\n        self._backup_wsdl = (\n            \"https:\/\/swsbackup.serviceobjects.com\/LVI\/soap.svc?wsdl\"\n            if is_live else\n            \"https:\/\/trial.serviceobjects.com\/LVI\/soap.svc?wsdl\"\n        )\n\n    def validate_lead_international(\n                                  self,\n                                  full_name: str,\n                                  salutation: str,\n                                  first_name: str,\n                                  last_name: str,\n                                  business_name: str,\n                                  business_domain: str,\n                                  business_EIN: str,\n                                  address_line1: str,\n                                  address_line2: str,\n                                  address_line3: str,\n                                  address_line4: str,\n                                  address_line5: str,\n                                  locality: str,\n                                  admin_area: str,\n                                  postal_code: str,\n                                  country: str,\n                                  phone1: str,\n                                  phone2: str,\n                                  email: str,\n                                  ip_address: str,\n                                  gender: str,\n                                  date_of_birth: str,\n                                  utc_capture_time: str,\n                                  output_language: str,\n                                  test_type: str\n                                ) -> Object:\n        \"\"\"\n        Call LVI ValidateLeadInternational API to retrieve phone number information.\n\n        Parameters:\n              full_name: The contact's full name. e.g. Jane Doe\n              salutation: Salutation of the contact. Dr, Esq, Mr, Mrs etc\n              first_name: First name of the contact. e.g. Jane\n              last_name: Last name of the contact. e.g. Doe\n              business_name: The contact's company. e.g. Service Objects\n              business_domain: Website domain associated with the business. e.g. serviceobjects.com\n              business_EIN: Represents the Company Tax Number. Used for Tax exempt checks for US leads.\n              address_line1: The address 1 of the contact or business address.\n              address_line2: The address 2 of the contact or business address.\n              address_line3: The address 3 of the contact or business address.\n              address_line4: The address 4 of the contact or business address.\n              address_line5: The address 5 of the contact or business address.\n              locality: The city of the contact's postal address.\n              admin_area: The state of the contact's postal address.\n              postal_code: The zip code of the contact's postal address.\n              country: The country of the contact's postal address. e.g. United States, US or USA\n              phone1: The contact's primary phone number.\n              phone2: The contact's secondary phone number.\n              email: The contact's email address.\n              ip_address: The contact's IP address in IPv4. (IPv6 coming in a future release)\n              gender: Male, Female or Neutral\n              date_of_birth: The contact's date of birth\n              utc_capture_time: The time the lead was submitted\n              output_language: Language field indicating what language some of the output information will be.\n              test_type: The name of the type of validation you want to perform on this contact.\n              license_key: Your license key to use the service.\n              is_live: Value to determine whether to use the live or trial servers\n              timeout_seconds: Timeout, in seconds, for the call to the service.\n\n        Returns:\n              dict: Parsed JSON response with phone information or error details.\n        \"\"\"\n\n\n        # Common kwargs for both calls\n        call_kwargs = dict(\n            FullName=full_name,\n            Salutation=salutation,\n            FirstName=first_name,\n            LastName=last_name,\n            BusinessName=business_name,\n            BusinessDomain=business_domain,\n            BusinessEIN=business_EIN,\n            Address1=address_line1,\n            Address2=address_line2,\n            Address3=address_line3,\n            Address4=address_line4,\n            Address5=address_line5,\n            Locality=locality,\n            AdminArea=admin_area,\n            PostalCode=postal_code,\n            Country=country,\n            Phone1=phone1,\n            Phone2=phone2,\n            Email=email,\n            IPAddress=ip_address,\n            Gender=gender, \n            DateOfBirth=date_of_birth,\n            UTCCaptureTime=utc_capture_time,\n            OutputLanguage=output_language,\n            TestType=test_type,\n            LicenseKey=self.license_key,\n        )\n\n        # Attempt primary\n        try:\n            client = Client(self._primary_wsdl, timeout=self._timeout_s)\n\n                # Override endpoint URL if needed:\n            response = client.service.ValidateLeadInternational(**call_kwargs)\n\n            # If response is None or fatal error code, trigger fallback\n            if response is None or (hasattr(response, 'Error') and response.Error and response.Error.TypeCode == '3'):\n                    raise ValueError(\"Primary returned no result or fatal Error.TypeCode=4\")\n\n            return response\n\n        except (WebFault, ValueError, Exception) as primary_ex:\n                # Attempt backup\n            try:\n                client = Client(self._backup_wsdl, timeout=self._timeout_s)\n                response = client.service.ValidateLeadInternational(**call_kwargs)\n                return response\n            except (WebFault,Exception) as backup_ex:\n                # Raise a combined error if both attempts fail\n                msg = (\n                    \"Both primary and backup endpoints failed.\\n\"\n                    f\"Primary error: {str(primary_ex)}\\n\"\n                    f\"Backup error: {str(backup_ex)}\"\n                )\n                raise RuntimeError(msg)<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong><strong>Lead Validation International NodeJS<\/strong><\/strong> <strong><strong>Code Snippet<\/strong><\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import { soap } from \"strong-soap\";\n\n\/**\n * &lt;summary>\n * A class that provides functionality to call the ServiceObjects Lead Validation International SOAP service's ValidateLeadInternational endpoint,\n * retrieving lead validation information with fallback to a backup endpoint for reliability in live mode.\n * &lt;\/summary>\n *\/\nclass ValidateLeadInternationalSoap {\n    \/**\n    * &lt;summary>    \n    * Initializes a new instance of the ValidateLeadInternationalSoap class with the provided input parameters,\n    * setting up primary and backup WSDL URLs based on the live\/trial mode.\n    * &lt;\/summary>\n    * @param {string} fullName - The contact\u2019s full name. e.g. Jane Doe\n    * @param {string} salutation - Salutation of the contact. Dr, Esq, Mr, Mrs etc\n    * @param {string} firstName - First name of the contact. e.g. Jane\n    * @param {string} lastName - Last name of the contact. e.g. Doe\n    * @param {string} businessName - The contact's company. e.g. Service Objects\n    * @param {string} businessDomain - Website domain associated with the business. e.g. serviceobjects.com\n    * @param {string} businessEIN - Represents the Company Tax Number. Used for Tax exempt checks for US leads.\n    * @param {string} addressLine1 - The address 1 of the contact or business address.\n    * @param {string} addressLine2 - The address 2 of the contact or business address.\n    * @param {string} addressLine3 - The address 3 of the contact or business address.\n    * @param {string} addressLine4 - The address 4 of the contact or business address.\n    * @param {string} addressLine5 - The address 5 of the contact or business address.\n    * @param {string} locality - The city of the contact\u2019s postal address.\n    * @param {string} adminArea - The state of the contact\u2019s postal address.\n    * @param {string} postalCode - The zip code of the contact\u2019s postal address.\n    * @param {string} country - The country of the contact\u2019s postal address. e.g. United States, US or USA\n    * @param {string} phone1 - The contact\u2019s primary phone number.\n    * @param {string} phone2 - The contact\u2019s secondary phone number.\n    * @param {string} email - The contact\u2019s email address.\n    * @param {string} ipAddress - The contact\u2019s IP address in IPv4. (IPv6 coming in a future release)\n    * @param {string} gender - Male, Female or Neutral\n    * @param {string} dateOfBirth - The contact\u2019s date of birth\n    * @param {string} utcCaptureTime - The time the lead was submitted\n    * @param {string} outputLanguage - Language field indicating what language some of the output information will be.\n    * @param {string} testType - The name of the type of validation you want to perform on this contact.\n    * @param {string} licenseKey - Your license key to use the service.\n    * @param {boolean} isLive - Value to determine whether to use the live or trial servers\n    * @param {number} timeoutSeconds - Timeout, in seconds, for the call to the service.\n    * \n    * @returns {Promise&lt;LVIResponse>} - A promise that resolves to an LVIResponse object.\n    *\/\n    constructor(\n        fullName, salutation, firstName, lastName, businessName, businessDomain, businessEIN,\n        address1, address2, address3, address4, address5, aocality, adminArea, postalCode, country,\n        phone1, phone2, email, ipAddress, gender, dateOfBirth, utcCaptureTime, outputLanguage, testType, licenseKey,\n        isLive, timeoutSeconds\n    ) {\n\n        this.args = {\n            fullName, salutation, firstName, lastName, businessName, businessDomain, businessEIN,\n            address1, address2, address3, address4, address5, aocality, adminArea, postalCode, country,\n            phone1, phone2, email, ipAddress, gender, dateOfBirth, utcCaptureTime, outputLanguage, testType, licenseKey\n        };\n\n        this.isLive = isLive;\n        this.timeoutSeconds = timeoutSeconds;\n\n        this.liveBaseUrl = \"https:\/\/sws.serviceobjects.com\/LVI\/soap.svc?wsdl\";\n        this.backupBaseUrl = \"https:\/\/swsbackup.serviceobjects.com\/LVI\/soap.svc?wsdl\";\n        this.trialBaseUrl = \"https:\/\/trial.serviceobjects.com\/LVI\/soap.svc?wsdl\";\n\n        this._primaryWsdl = this.isLive ? this.liveBaseUrl : this.trialBaseUrl;\n        this._backupWsdl = this.isLive ? this.backupBaseUrl : this.trialBaseUrl;\n    }\n\n    \/**\n     * &lt;summary>\n     * Asynchronously calls the ValidateLeadInternational SOAP endpoint, attempting the primary endpoint\n     * first and falling back to the backup if the response is invalid (Error.Number == \"4\") in live mode\n     * or if the primary call fails.\n     * &lt;\/summary>\n     * &lt;returns type=\"Promise&lt;LVIResponse>\">A promise that resolves to an LVIResponse object containing lead validation details or an error.&lt;\/returns>\n     * &lt;exception cref=\"Error\">Thrown if both primary and backup calls fail, with detailed error messages.&lt;\/exception>\n     *\/\n    async validateLeadInternational() {\n        try {\n            const primaryResult = await this._callSoap(this._primaryWsdl, this.args);\n\n            if (this.isLive &amp;&amp; !this._isValid(primaryResult)) {\n                console.warn(\"Primary returned Error.Number == '4', falling back to backup...\");\n                const backupResult = await this._callSoap(this._backupWsdl, this.args);\n                return backupResult;\n            }\n\n            return primaryResult;\n        } catch (primaryErr) {\n            try {\n                const backupResult = await this._callSoap(this._backupWsdl, this.args);\n                return backupResult;\n            } catch (backupErr) {\n                throw new Error(`Both primary and backup calls failed:\\nPrimary: ${primaryErr.message}\\nBackup: ${backupErr.message}`);\n            }\n        }\n    }\n\n    \/**\n     * &lt;summary>\n     * Performs a SOAP service call to the specified WSDL URL with the given arguments,\n     * creating a client and processing the response into an LVIResponse object.\n     * &lt;\/summary>\n     * &lt;param name=\"wsdlUrl\" type=\"string\">The WSDL URL of the SOAP service endpoint (primary or backup).&lt;\/param>\n     * &lt;param name=\"args\" type=\"Object\">The arguments to pass to the ValidateLeadInternational method.&lt;\/param>\n     * &lt;returns type=\"Promise&lt;LVIResponse>\">A promise that resolves to an LVIResponse object containing the SOAP response data.&lt;\/returns>\n     * &lt;exception cref=\"Error\">Thrown if the SOAP client creation fails, the service call fails, or the response cannot be parsed.&lt;\/exception>\n     *\/\n    _callSoap(wsdlUrl, args) {\n        return new Promise((resolve, reject) => {\n            soap.createClient(wsdlUrl, { timeout: this.timeoutSeconds * 1000 }, (err, client) => {\n                if (err) return reject(err);\n\n                client.ValidateLeadInternational(args, (err, result) => {\n                    if (err) return reject(err);\n                    const rawData = result.ValidateLeadInternationalResult;\n                    try {\n                        if (!rawData) {\n                            return reject(new Error(\"SOAP response is empty or undefined.\"));\n                        }\n                        resolve(rawData);\n                    } catch (parseErr) {\n                        reject(new Error(`Failed to parse SOAP response: ${parseErr.message}`));\n                    }\n                });\n            });\n        });\n    }\n\n    \/**\n     * &lt;summary>\n     * Checks if a SOAP response is valid by verifying that it exists and either has no Error object\n     * or the Error.Number is not equal to '4'.\n     * &lt;\/summary>\n     * &lt;param name=\"response\" type=\"LVIResponse\">The LVIResponse object to validate.&lt;\/param>\n     * &lt;returns type=\"boolean\">True if the response is valid, false otherwise.&lt;\/returns>\n     *\/\n    _isValid(response) {\n        return response &amp;&amp; (!response.Error || response.Error.TypeCode !== \"4\");\n    }\n}\n\nexport { ValidateLeadInternationalSoap };<\/pre>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":6012,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6016","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>LVI - SOAP<\/title>\n<meta name=\"description\" content=\"C#PythonNodeJS Lead Validation International C# Code Snippet \ufeffusing LVIService; namespace lead_validation_international_dot_net.SOAP { \/\/\/ &lt;summary&gt;\" \/>\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.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LVI - SOAP\" \/>\n<meta property=\"og:description\" content=\"C#PythonNodeJS Lead Validation International C# Code Snippet \ufeffusing LVIService; namespace lead_validation_international_dot_net.SOAP { \/\/\/ &lt;summary&gt;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-26T23:10:41+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/\",\"name\":\"LVI - SOAP\",\"isPartOf\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#website\"},\"datePublished\":\"2022-11-15T17:53:41+00:00\",\"dateModified\":\"2025-09-26T23:10:41+00:00\",\"description\":\"C#PythonNodeJS Lead Validation International C# Code Snippet \ufeffusing LVIService; namespace lead_validation_international_dot_net.SOAP { \/\/\/ &lt;summary>\",\"breadcrumb\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DOTS Lead Validation &#8211; International\u00a0\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"LVI &#8211; Code Snippets and Sample Code\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"LVI &#8211; SOAP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#website\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.serviceobjects.com\/docs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#organization\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"contentUrl\":\"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"width\":2560,\"height\":1440,\"caption\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\"},\"image\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LVI - SOAP","description":"C#PythonNodeJS Lead Validation International C# Code Snippet \ufeffusing LVIService; namespace lead_validation_international_dot_net.SOAP { \/\/\/ &lt;summary>","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.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/","og_locale":"en_US","og_type":"article","og_title":"LVI - SOAP","og_description":"C#PythonNodeJS Lead Validation International C# Code Snippet \ufeffusing LVIService; namespace lead_validation_international_dot_net.SOAP { \/\/\/ &lt;summary>","og_url":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/","og_site_name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","article_modified_time":"2025-09-26T23:10:41+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/","url":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/","name":"LVI - SOAP","isPartOf":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#website"},"datePublished":"2022-11-15T17:53:41+00:00","dateModified":"2025-09-26T23:10:41+00:00","description":"C#PythonNodeJS Lead Validation International C# Code Snippet \ufeffusing LVIService; namespace lead_validation_international_dot_net.SOAP { \/\/\/ &lt;summary>","breadcrumb":{"@id":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/lvi-soap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.serviceobjects.com\/docs\/"},{"@type":"ListItem","position":2,"name":"DOTS Lead Validation &#8211; International\u00a0","item":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/"},{"@type":"ListItem","position":3,"name":"LVI &#8211; Code Snippets and Sample Code","item":"https:\/\/www.serviceobjects.com\/docs\/dots-lead-validation-international\/lvi-code-snippets-and-sample-code\/"},{"@type":"ListItem","position":4,"name":"LVI &#8211; SOAP"}]},{"@type":"WebSite","@id":"https:\/\/www.serviceobjects.com\/docs\/#website","url":"https:\/\/www.serviceobjects.com\/docs\/","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","description":"","publisher":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.serviceobjects.com\/docs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.serviceobjects.com\/docs\/#organization","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","url":"https:\/\/www.serviceobjects.com\/docs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/","url":"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","contentUrl":"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","width":2560,"height":1440,"caption":"Service Objects | Contact, Phone, Email Verification | Data Quality Services"},"image":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/6016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/comments?post=6016"}],"version-history":[{"count":5,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/6016\/revisions"}],"predecessor-version":[{"id":12349,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/6016\/revisions\/12349"}],"up":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/6012"}],"wp:attachment":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/media?parent=6016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}