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
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
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 statuscurl -H "Content-Type: application/json" -X POST -d '{"apiKey":"xxxxx","phoneNumbers":"xxxx","notifyUrl":"http://..."}' https://api.smspartner.fr/v1/hlr/notifyResponse
{
"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
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
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.
Last updated