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