Skip to content

SHOP SMS for e-commerce

Send OTPs and order updates in one API call.

Send login and checkout codes, order confirmations and shipping updates from your store's backend. Build on the default Sender ID today, then launch on your own to reach every network. A delivery webhook for every message, ₱0.50 per SMS and down to ₱0.35.

10 free credits when you verify your mobile · Credits never expire

Networks
All 5 PH networks
Smart, TNT and Sun once your Sender ID is approved
Price per SMS
₱0.50, down to ₱0.35
OTP cost
1 credit, the same as any SMS
Delivery status
A webhook for every message

What stores send

The texts every order depends on.

Each one maps to an endpoint, so it fits the part of your backend that already knows the login, the order or the cart.

POST /api/sms

OTPs for logins, sign-ups and checkout

Generate and check the code in your app, and send it with one API call. There's no separate OTP endpoint to learn.

YourShop: 482913 is your verification code. It expires in 5 minutes. Never share this code.

POST /api/sms

Order and shipping updates

Confirm each order and tell buyers when it ships and arrives, straight from your order system. One message per update.

YourShop: Order #1042 has shipped and should arrive in 2-3 days. Thank you for shopping with us!

POST /api/bulk

Abandoned cart reminders

Nudge buyers who left items behind, each with their own cart. A batch of reminders is one bulk request. Send these only to customers who agreed to marketing messages.

YourShop: Hi Ana, you left 2 items in your cart. They're still waiting for you at YourShop.

One request

A checkout code in one request.

Generate the code in your app, store it with an expiry, and send it. Tag the message with metadata to match the delivery webhook back to the user.

  • Verify the code in your app when the buyer types it in.
  • Numbers can be +639… or 09…. An invalid number is refused before any credit is used.
  • Tracking links need your own Sender ID with links enabled.
Read the SMS API docs →

checkout-otp.sh

$ curl -X POST \
    https://unismsapi.com/api/sms \
    -u $UNISMS_SECRET_KEY: \
    -H "Content-Type: application/json" \
    -d '{
      "sender_id": "YourShop",
      "recipient": "+639171234567",
      "content": "482913 is your code.",
      "metadata": {"user": "u_381"}
    }'
# 201 Created
{
  "message": {
    "reference_id": "msg_3f9c1e07-…",
    "status": "pending",
    "recipient": "+639171234567"
  }
}
# Then a webhook for each message:
{
  "event": "message.sent",
  "message": {
    "recipient": "+639171234567",
    "metadata": {"user": "u_381"}
  }
}

Why UniSMS

Built for developers who ship.

Any stack

Plain REST with a PHP SDK, a Postman collection and samples in cURL, Node.js, Python and more.

Your store's name as the sender

Once approved, buyers see your registered Sender ID on every network instead of an unknown number.

Delivery you can track

A webhook for every message with your metadata, so support can see whether a code went out.

Pay for what arrives

Failed messages are refunded automatically. Prepaid credits never expire.

Getting started

Live in three steps.

  1. 01

    Create an account

    Get your API key and send OTPs on the default Sender ID, which reaches Globe and DITO.

  2. 02

    Apply for your Sender ID

    Top up ₱2,500 or more for a SID token and submit your business documents from the dashboard.

  3. 03

    Launch on your Sender ID

    Telco approval takes 7–14 business days, so apply before launch. Then your codes reach Smart, TNT and Sun buyers too.

FAQ

Questions from online stores.

Is there an OTP endpoint?
No, and you don't need one. Generate the code in your app, store it with an expiry, send it with POST /api/sms, and check it when the buyer types it in.
Can I start without a Sender ID?
Yes. Every account gets a default Sender ID that reaches Globe and DITO numbers, so you can build and test right away. To reach Smart, TNT and Sun buyers, apply for your own Sender ID. Telco approval takes 7–14 business days.
Should we go live with OTPs on the default Sender ID?
No. Use it to build and test, then launch on your own Sender ID. On the default Sender ID, codes to Smart, TNT and Sun numbers are refused, so those buyers couldn't sign up or check out. Apply early: telco approval takes 7–14 business days.
Can order updates include a tracking link?
Links need your own Sender ID with links enabled. The default Sender ID can't send links.
Is there a Shopify or WooCommerce plugin?
Not yet. Call the REST API from your store's backend, or from any automation tool that can make HTTP requests. There's a PHP SDK and a Postman collection to get started.
Can I send abandoned cart reminders?
Yes, to customers who agreed to receive marketing messages. Unsolicited marketing and purchased lists aren't allowed under our Acceptable Use Policy.
How much does an OTP cost?
The same as any SMS: 1 credit for up to 160 characters, at ₱0.50 per SMS and down to ₱0.35 at volume. Credits never expire.

Every code tracked. Every order updated.

Create a free account and send your first OTP in minutes. Verify your mobile number for 10 free SMS credits.