Leave the phone on. Messages reach your system.

TonPing forwards SMS and notifications from the apps you choose, on an Android phone, to your webhook, by rules you set, and tells you when that phone stops working.

Get it onGoogle PlayComing soon7-day free trial for new subscribers
Example: a power-cut alert SMS from ALERT-SMS arrives on the phone, and TonPing forwards it as JSON to your webhook
13:05

Messagesjust now

ALERT-SMS

Power cut in server room. Backup power on since 13:04

Delivered to webhook · 200

POST /webhook200 OK

{
  "event_id": "4b1c6f0e-3a52-4d0b-9a77-0e2f5c1d8a11",
  "type": "message.received",
  "created_at": "2026-11-07T06:05:00.123Z",
  "device": {
    "name": "Office phone"
  },
  "message": {
    "source": "sms",
    "sender": "ALERT-SMS",
    "body": "Power cut in server room. Backup power on since 13:04",
    "received_at": "2026-11-07T06:04:59.5Z",
    "recovered": false
  }
}

Some fields left out for reading. Every field is in the webhook guide

Three steps to start

  1. Install

    Install TonPing on the Android phone that receives the messages and make it the default SMS app. A spare phone that only receives messages works best.

  2. Set your webhook URL

    Enter the https URL of your system, then set rules for what to forward: sender or app, words that must appear, words that must not.

  3. Leave it running

    Matching messages go out as JSON, and every request carries an HMAC signature. The raw text is sent character for character; your system decides what to do with it.

Forwards what you choose, even while you are not watching

Forward whatever you choose

SMS from any sender and notifications from the apps you pick go to your webhook as raw text, character for character, to use however you like. App notifications are optional and off by default.

Sender or app
ALERT-SMS
Must contain
Power cut
Must not contain
test
App notifications
off (turn on if you need them)
Send to
https://api.example.com/tonping
One rule: matching messages are forwarded, everything else stays on the phone

Runs unattended

Android hands SMS straight to the default SMS app, so TonPing runs as that app and takes care of the usual reasons background apps stop working.

  • Default SMS app on the phone
  • Foreground service, with an icon always in the status bar
  • Battery-setting helper for each phone brand
  • The server wakes the phone through FCM
  • A sweep picks up messages that slipped through and sends them
What keeps the app running

A dropped connection does not lose messages

Built so messages are not lost when the network drops: they queue on the phone and go out when it is back. If your endpoint is down, the server retries for up to 24 hours with the same event_id, so your system can skip duplicates.

  1. 13:02:10webhook200Previous message delivered
  2. 13:04:59phoneNetwork drops; new message queued on the phone
  3. 13:07:12phoneNetwork back; queue sends it
  4. 13:07:13webhook503Endpoint down; retry in 10 seconds
  5. 13:07:23webhook503Retry in 20 seconds
  6. 13:07:43webhook200Delivered, same event_id
One message, from the network dropping to delivery

A quiet phone gets reported

The phone checks in every 5 minutes. If it stays quiet for more than 15 minutes, your webhook hears about it, so nobody has to notice that messages stopped coming.

  1. 0 minLast check-in from the phone
  2. 10 minStill quiet; the server wakes the phone through FCM
  3. 15 minQuiet for 15 minutes; your webhook is tolddevice.offline
  4. BackThe phone checks in againdevice.online
Timeline when a phone goes quiet

What your webhook receives

Different kinds of messages arrive at the same URL: an alert SMS from equipment, a new-order notification from a shop app, a message from a customer, a payment SMS. Each request is a JSON POST with an HMAC signature so your system can check it came from TonPing.

Read the full data format in the webhook guide

POST https://api.example.com/tonping

  1. 13:04:59message.receivedsms · ALERT-SMSPower cut in server room. Backup power on since 13:04200
  2. 13:21:40message.receivednotification · Shop appNew order #1042, 3 items200
  3. 13:36:12message.receivedsms · 081-xxx-4821Hi, can you send me more details on this item?200
  4. 13:48:03message.receivedsms · BANK-SMSเงินเข้า 1,250.00 บ. เข้าบัญชี x4821 เวลา 13:48200
  5. 14:15:02device.offlineOffice phonequiet since 14:00200
  6. 14:32:18device.onlineOffice phonechecking in again200
Sample log on the receiving end

Priced by number of phones

A monthly subscription through Google Play. Pick by how many phones receive messages.

7-day free trial for new subscribers
Yearly plans cost 10 months

See pricing details
  • 1 phone199 THB / month
  • 3 phones499 THB / month
  • 5 phones790 THB / month
  • 10 phones1,490 THB / month

Questions people ask

What can it forward?

SMS from any sender you set a rule for, and notifications from the apps you choose. Notifications are optional, off by default, and less certain than SMS, because a notification that was swiped away cannot be recovered.

What can I use it for?

Anything your system needs to know about when a message arrives: SMS from devices, new-order notifications, messages from customers, or payment alerts. TonPing sends the raw text; your system decides what to do.

Do I need to write code?

You need your own webhook on HTTPS. The guide includes a sample webhook receiver in PHP.

Why does it have to be the default SMS app?

Android delivers SMS directly to the default app, and Google Play requires it for apps that read SMS. That is why we suggest a spare phone that only receives messages.

Do my messages pass through TonPing servers?

Yes, only the messages that match your rules; everything else stays on the phone. They travel over an encrypted connection, are kept for 90 days and then deleted automatically, and are never sold. The privacy policy has the details.

What if the TonPing server goes down?

Messages wait in the queue on the phone and go out when the server is back. They arrive late, but they are not lost.