DLR [GET/POST]: Pull Delivery Report for a Message

End Point


Submit OTP DLR requests to the end point. All the requests are submitted through HTTPS POST/GET method. Although you can use HTTP protocol, we strongly recommend you to submit all requests to API over HTTPS so the traffic is encrypted and the privacy is ensured.



Parameter Type Description
apikey String The unique string to authenticate request. Generate, validate and manage apikeys
API Tokens
msgid String

The unique identifier of the message


OTP DLR Request Format (HTTPS POST Method)

Sample Code to pull OTP DLR through HTTPS POST call to the OTP API

$endpoint = 'https://otp.ng/api/dlr?';
$dlrArray = array (
  'msgid'=> 'otp_20200114_XxxXXXxxXXXxxxXX',
  'apikey' => 'API_KEY_HERE',
$params = http_build_query($dlrArray);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($ch); curl_close($ch);
echo $response; // response code

OTP Request Format (HTTPS GET Method)

Snippet to pull OTP DLR through HTTPS GET call to the API


$msgid = 'MSGID_HERE';
$endpoint = 'https://otp.ng/api/dlr/';
$pull_dlr = $endpoint.'&apikey='.$apikey.'&msgid='.$msgid;
$response = file_get_contents($pull_dlr);
echo $response;

OTP Response Format

All response are in the format below:

{json data}


Possible Response Codes


On Success


"message":"Here is your OTP: XXXXXX",
"description":"Message delivered to phone",
"timesent":"2020-01-14 11:41:40",
"timedone":"2020-01-14 11:41:39",


On Failure


"success": false,
"comment": "Reason for error",
Parameters Type Description
success Boolean Sets to false
comment String Description for failure

A system generated One-Time-Password is quite secure than a static password, especially a user-created password, which is typically weak. OTP as the name suggest, is valid only for one interaction, session, or transaction.