Doc Partner
SMS Partner
Doc Partner - EN
Doc Partner - EN
  • Welcome
  • API
    • SMS Partner
      • Credits
      • Send SMS
        • Single Send
        • Bulk Send
        • Send by Long Number
        • Survey Send
        • Cancel Scheduled SMS
        • Special Characters
      • Status & Statistics
        • Single Status
        • Bulk Status
        • Status by Message
        • Status by Tag
        • Sending Statistics
      • Contact Management
        • Add Group
        • Add Contact
        • Delete Group
        • Add Bulk Contacts
        • Edit Contact
        • Delete Contact
        • Get Group List
        • Get Contact List
        • Get Contact Details
      • Replies / Opt-outs Management
        • Stop List
        • Add Number to SMS Stop List
        • Remove Number from SMS Stop List
        • Replies Management
      • Sub-accounts
        • Activation
        • Create Sub-account
        • Delete Sub-account
        • Sub-account List
        • Manage Sub-account Credits
      • Manage Call Forwarding
      • Number Verification
        • Send a Verification
        • Format Verification
      • Contact Rental
        • Categories
        • Targeting & Calculation
        • Rental Status
        • Download File
      • RCS
    • Error Codes
Powered by GitBook

© 2025 NDA Media

On this page
  1. API
  2. SMS Partner
  3. Number Verification

Send a Verification

This request is used to send an HLR verification.

URL

POST https://api.smspartner.fr/v1/hlr/notify

Limit of 360 requests per minute. If you exceed this limit, you will receive an HTTP 429 response.

Required Parameters

Name
Value

apiKey

phoneNumbers

Mobile numbers to verify. Must be in international format (+336xxxxxxxx). For multiple numbers, separate them with commas. Max: 500 numbers per request.

Optional Parameters

Name
Value

tag

String of up to 20 characters.

notifyUrl

Allows you to receive the HLR result via a POST request to a custom URL. Example of HLR request notification below.

_format

json or xml

Requests

<?php
        // Prepare data for POST request
        $fields = array(
            'apiKey'=> 'YOUR API KEY',
            'phoneNumbers'=> '+336xxxxxxxx',
            'notifyUrl'=>'http://...'
        );
 
 
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,'https://api.smspartner.fr/v1/hlr/notify');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS,json_encode($fields));
 
        $result = curl_exec($curl);
        curl_close($curl);
 
        // Process your response here
        echo $result;
?>
Imports System.IO
Imports System.Net
 
Module Module1
 
  Sub Main()
 
    Dim base_url As String = "http://api.smspartner.fr/v1/"
    Dim apiKey As String = "VOTRE_APIKEY"
 
    #send sms
    url = base_url & "hlr/notify"
    #note : utiliser une librairie JSON en production, par exemple :
    #https//www.nuget.org/packages/Newtonsoft.Json/
    Dim parameters As String = String.Format(
        "{{""apiKey"":""{0}"",""phoneNumbers"":""{1}"",""notifyUrl"":""{2}""}}",
        apiKey,
        "+33XXXXXXXXX",
        "http://...")
    Console.Write(parameters)
    apiRequest("POST", url, parameters)
 
  End Sub
 
  Function apiRequest(method As String, url As String, parameters As String) As String
 
    Dim request As HttpWebRequest
    request = WebRequest.Create(url)
    request.Method = method
    request.Timeout = 10000   # timeout in ms
    request.ContentType = "application/json; charset=utf-8"
    request.ContentLength = 0
 
    #set POST data
    If Not String.IsNullOrEmpty(parameters) Then
      request.ContentLength = parameters.Length
      Using reqStream As StreamWriter = New StreamWriter(request.GetRequestStream())
        reqStream.Write(parameters)
      End Using
    End If
 
    #get response
    Dim returnValue As String = Nothing
    Using response As HttpWebResponse = request.GetResponse()
      If response.StatusCode = HttpStatusCode.OK Then
        Using resStream = response.GetResponseStream()
          If resStream IsNot Nothing Then
            Using reader As New StreamReader(resStream)
              returnValue = reader.ReadToEnd()
            End Using
          End If
        End Using
      End If
    End Using
    apiRequest = returnValue
 
  End Function
 
End Module
# std
import logging
import json
from collections import OrderedDict
 
# 3p
import requests
 
API_KEY = "MY API KEY"
URL = "https://api.smspartner.fr/v1"
 
class SMSPartner():
    def add_stop(self,phone_numbers):
 
		data = OrderedDict([
			("apiKey", API_KEY),
			("phoneNumbers", phone_numbers,
			"notifyUrl", notify_url)
		])
 
		url = URL + "/hlr/notify"
		r = requests.post(url, data=json.dumps(data), verify=False)
 
		r_json = r.json()
		if r_json.get("success") == True:
			print(r_json)
			status = True
		else:
			print(r_json)
			status = False
		return status
curl -H  "Content-Type: application/json" -X POST -d '{"apiKey":"xxxxx","phoneNumbers":"xxxx","notifyUrl":"http://..."}' https://api.smspartner.fr/v1/hlr/notify

Response

{
    "success": true,
    "code": 200,
    "campaign_id": "HLR000000",
    "number": 1,
    "cost": 0.005,
    "currency": "EUR"
}
<?xml version="1.0" encoding="UTF-8"?>
<result>
    <entry>true</entry>
    <entry>200</entry>
    <entry>
        <![CDATA[HLR0000000]]>
    </entry>
    <entry>1</entry>
    <entry>0.005</entry>
    <entry>
        <![CDATA[EUR]]>
    </entry>
</result>

Errors

{
    "success": false,
    "code": 10,
    "message": "Clé API incorrecte"
}
<?xml version="1.0" encoding="UTF-8"?>
<result>
    <entry>false</entry>
    <entry>10</entry>
    <entry>
        <![CDATA[Clé API incorrecte]]>
    </entry>
</result>

Error Codes

Code
Message

1

API key is required

2

Phone number is required

3

Numbers must be separated by commas

10

Invalid API key

200

Everything went fine!

HLR Notification Example

Array(
    'phone' => '+3300000000',
    'messageId'=>'1234-12344-1234-1234',
    'mccMnc' => '20815',
    'ported'=> 1,
    'errorGrpId'=> 0,
    'errorName'=> 'NO_ERROR ',
    'errorDesc'=>'No Error' ,
    'date'=>'2018-03-05T10:34:52.355+0000'
)

HLR Error Codes

Error
Error Name
Description

0

NO_ERROR

No error.

1

EC_UNKNOWN_SUBSCRIBER

The number doesn't exist or is not assigned to any active user in the operator's database.

5

EC_UNIDENTIFIED_SUBSCRIBER

Subscriber not identified.

6

EC_ABSENT_SUBSCRIBER_SM

Subscriber unreachable — likely due to phone being turned off or in a poor signal area.

7

EC_UNKNOWN_EQUIPMENT

The device was not recognized by the Equipment Identity Register (EIR).

8

EC_ROAMING_NOT_ALLOWED

The subscriber is roaming and roaming delivery is not guaranteed due to lack of inter-operator agreements.

9

EC_ILLEGAL_SUBSCRIBER

Illegal subscriber.

12

EC_ILLEGAL_EQUIPMENT

Illegal equipment.

13

EC_CALL_BARRED

Subscriber is on DND (Do Not Disturb) and does not receive service traffic.

27

EC_ABSENT_SUBSCRIBER

Subscriber is offline — often due to the phone being off.

255

EC_UNKNOWN_ERROR

Unknown error.

PreviousNumber VerificationNextFormat Verification

Last updated 1 month ago

Your API key