This document describes the full functionalities and detailed documentation of the SMSPoh API V3. It is intended for organizations and individuals who need to send or receive SMS messages programmatically.
The last version of SMSPoh API V3.0 enhanced performance, streamlined endpoints, and improved security features. With simplified authentication and more consistent responses, it aims to provide a smoother, more reliable experience for developers.
The base URL for this service is https://v3.smspoh.com/api/rest.
This base URL cannot be used independently;
you must append a specific path that
identifies
the
desired operation, and you may need
to specify certain path parameters.
Please note that the previous SMSPoh API credentials are no longer compatible with API V3.
To create a new API credential, please navigate to
the https://v3.smspoh.com/ and
Accounts & Security >
API Credentials page in the customer dashboard.
You must combine the API key and API secret using a colon (:) in the format
APIKey:APISecret and then encode this string using Base64 encoding to obtain
the
API Token.
In order to improve the security of the API interface, you may create a whitelist of IP addresses. Sending messages will be possible only from the whitelisted IP addresses (attempts at sending messages from other IPs will result will response HTTP 401 Unauthorized Error).
The SMSPoh API V3.0 enables you to encrypt your text messages, which our system will then decrypt before sending them to the mobile network operator. Our system encrypts and securely stores the encrypted messages in our database. Encrypt the whole message content is ensuring that even if data is compromised, it remains unreadable without the encryption key. This solution is ideal for corporations, banks, and government agencies, providing complete privacy and security. The message encryption using PBKDF2 and a random salt function.
Name | Type | Description |
---|---|---|
to | String Required | Recipient mobile numbers. The mobile number can start with (09, 959 or +959) prefixes. |
message | String Required | The message text to be sent. |
from | String Required | The sender ID (alphanumeric or numeric, depending on your account settings). |
scheduledAt | String | MySQL Date time. Schedule your message to send later at a specific time. |
encrypt | Boolean | To encrypt the message content. We encrypt your message content using the BKDF2 algorithm in the database. |
unicode | Boolean | Send force as the unicode message. |
test | Boolean | Send a test message. |
deliveryReceiptUrl | String | Define custom delivery receipt URL for this transaction. |
clientReference | String | Your reference value for this transaction. |
This API enables to send international mobile numbers. Please note that pricing may vary by country; you can check the most updated rates on the consumer dashboard. The charges will be deducted from your account balance accordingly. A Sender ID is required for pre-registration in certain countries. Additionally, the recipient's number must be in E.164 format. https://en.wikipedia.org/wiki/E.164
We strongly recommend using this encrypted message API for corporates, banks, e-wallets, OTPs, and all other financial transactions.
Please note that if you do not specify the encryptKey in your request, a random key will be generated and included in the response body. The encryptKey must be obtained, as it will only be provided once in the response body when sending the API interface. If you do not have the encryptKey, you will not be able to decrypt your message content.
You can set a default callback URL to receive all API delivery receipts to a common URL. You can update the default delivery receipt URL at Account & Security > Settings page.
If you use your delivery receipt webhook URL (https://yourwebsite.com/webhook/smspoh-v3-delivery-receipt), the following POST fields will be submitted.
Post Field | Value |
---|---|
messageId | A unique SMSPoh Message GUID. |
to | Mobile number. |
clientReference | Your reference value that is associated with your API message. |
status |
|
updatedAt | The MySQL date time of the new message status update (GMT +6:30). |
finishedAt | The finished MySQL date time of the message delivery. |
This API allows you to retrieve previous messages that were sent through the API interface.
Query Parameter | Description | Value |
---|---|---|
limit | The messages count to return in the API response. | Integer (Default to 20). You can set the limits to 20, 50, 100, 500, 1000. |
page | The page number | Integer (optional) |
filterByCreatedDateFrom | Filter by from date | The MySQL Date Format 2024-12-01 |
filterByCreatedDateTo | Filter by to date | The MySQL Date Format 2024-12-31 |
from | Filter by Sender ID | string (optional) |
to | Filter by phone number | integer (The mobile number must start with 95 prefix) |
message | The message text to be filtered | string (optional) |
This API provides access to your balance summary.