Title: 85.pl | Android SMS API
Author: alexanderem
Published: <strong>November 8, 2026</strong>
Last modified: November 8, 2026

---

Search plugins

![](https://ps.w.org/85pl-android-sms-api/assets/banner-772x250.png?rev=3791037)

![](https://ps.w.org/85pl-android-sms-api/assets/icon-256x256.png?rev=3791058)

# 85.pl | Android SMS API

 By [alexanderem](https://profiles.wordpress.org/alexanderem/)

[Download](https://downloads.wordpress.org/plugin/85pl-android-sms-api.0.2.5.zip)

 * [Details](https://wordpress.org/plugins/85pl-android-sms-api/#description)
 * [Reviews](https://wordpress.org/plugins/85pl-android-sms-api/#reviews)
 *  [Installation](https://wordpress.org/plugins/85pl-android-sms-api/#installation)
 * [Development](https://wordpress.org/plugins/85pl-android-sms-api/#developers)

 [Support](https://wordpress.org/support/plugin/85pl-android-sms-api/)

## Description

85.pl | Android SMS API connects your WordPress site to the smsportal.app SMS gateway.
Messages are sent by the smsportal.app Android app on your own phone, using your
own SIM card and plan.

**Connect in one click.** Click “Connect to smsportal.app”, sign in, pick the phone
and approve. Nothing to copy: the plugin receives its own access key, which you 
can revoke from either side.

**Automatic SMS (rules).** Pick an event, choose who gets the SMS (the customer,
or a fixed number such as yours), write the text with variables like `{first_name}`
or `{order_number}` (the Polish names `{imie}`, `{numer_zamowienia}` work too), 
save. The editor counts characters and SMS parts and shows a preview with the data
of the latest such event. Events:

 * WooCommerce: new order, and order status changed to any status (completed, on
   hold, cancelled, and custom statuses). Tracking number, carrier and tracking 
   link come from Advanced Shipment Tracking, WooCommerce Shipment Tracking or ShipStation.
 * Contact Form 7: a form was sent (the customer’s number comes from a form field
   you choose).
 * WPForms: a form was sent (the customer’s number comes from a form field you choose).
 * Fluent Forms: a form was sent (the customer’s number comes from a form field 
   you choose).
 * Forminator: a form was sent (the customer’s number comes from a form field you
   choose).
 * Kadence Blocks: an Advanced Form was sent, or a simple Form block was sent (the
   customer’s number comes from a form field you choose).
 * Ninja Forms: a form was sent (the customer’s number comes from a form field you
   choose).
 * Amelia: new booking, booking status changed, reminder a chosen number of hours
   before the appointment.
 * FluentBooking: new booking, booking status changed, booking rescheduled, reminder
   a chosen number of hours before the meeting (the guest’s number comes from the
   booking form’s phone field).
 * WP Booking Calendar: new booking, booking approved, booking set back to pending,
   booking canceled, reminder a chosen number of hours before the booked date (the
   customer’s number comes from the booking form’s “phone” field or a field you 
   choose).
 * Ultimate Member: new registration (one event per registration form, with the 
   form’s fields as variables), account approved, awaiting review (a fixed number
   makes it a notice to the administrator), deactivated, rejected; the customer’s
   number comes from the profile (mobile or phone number) or, for a registration,
   from a form field you choose.
 * Uncanny Automator: a “Send SMS (85.pl | Android SMS API)” action for your recipes.

**One SMS per event.** Each event is sent at most once, even when an order status
is set twice or a request is retried after a timeout. Messages are sent in the background,
so pages do not slow down; when smsportal.app cannot be reached they are retried
after 1, 5 and 15 minutes. You choose how late a message may still go out (12 hours
by default).

**Statuses and replies.** The “Sent” tab shows each SMS with its status: waiting
for the phone, sent, delivered, failed. Customer replies to SMS from this site appear
in “Replies”, are added to the WooCommerce order as a private note, and can be e-
mailed to you. A reply of STOP (or NIE, REZYGNUJE, UNSUBSCRIBE) puts the number 
on the block list.

**Overview.** Phone online or offline, battery, network, SMS sent this month by 
this site and by the whole account, and a test SMS button.

**Privacy.** Phone numbers are masked in the admin screens. Sent SMS, replies and
logs are deleted after 90 days. The plugin adds a suggested text to the privacy 
policy guide and supports the WordPress personal data export and erasure tools. 
Uninstalling removes all its data.

**Help.** Every plugin screen has short help under WordPress’s “Help” button and
a “Help” link to the step-by-step guide for that screen.

Documentation: https://smsportal.app/en/help

**For developers.** Send from your own code with `smsportal_send_sms( $to, $message,
array( 'dedupe_key' => 'my-plugin|order-123|shipped' ) )`, or add your own events
with the `smsportal_register_events` filter and fire them with `do_action( 'smsportal_fire_event',
$event_id, $context )`.

#### External service

This plugin connects to the external service smsportal.app (https://smsportal.app)
to send SMS messages and to receive delivery status and replies. When you click “
Connect to smsportal.app”, your browser goes to smsportal.app to sign in and approve
access; your site then sends smsportal.app its admin return address and its webhook
address (both on your own domain) and receives an access key, which is stored only
in your WordPress database. When an SMS is sent, the recipient phone number, the
message text and your API key are transmitted to smsportal.app. The overview screen
asks smsportal.app for the phone state and the monthly counters. The service is 
operated by the plugin author.

 * Terms of service: https://smsportal.app/en/terms
 * Privacy policy: https://smsportal.app/en/privacy

smsportal.app is not affiliated with SMSPortal (Pty) Ltd of South Africa.

## Screenshots

[⌊Overview presentation: phone connection, SMS usage and delivery statuses, rendered
from the plugin interface with sample data.⌉⌊Overview presentation: phone connection,
SMS usage and delivery statuses, rendered from the plugin interface with sample 
data.⌉[

Overview presentation: phone connection, SMS usage and delivery statuses, rendered
from the plugin interface with sample data.

[⌊Rule editor presentation: event, recipient, message variables and preview, rendered
from the plugin interface with sample data.⌉⌊Rule editor presentation: event, recipient,
message variables and preview, rendered from the plugin interface with sample data
.⌉[

Rule editor presentation: event, recipient, message variables and preview, rendered
from the plugin interface with sample data.

## Installation

 1. Download `smsportal-wordpress.zip` from https://smsportal.app/downloads/smsportal-
    wordpress.zip and upload it under Plugins > Add New > Upload Plugin. After publication
    in the wordpress.org plugin directory you can also search for “85.pl | Android 
    SMS API” on the Plugins screen.
 2. Activate the plugin.
 3. Install the smsportal.app Android app on a phone and sign in (https://smsportal.
    app).
 4. Open the 85.pl | Android SMS API menu in the admin sidebar and click “Connect to
    smsportal.app”.
 5. Under “Rules”, add your first automatic SMS.

Your site must use https (http works only on localhost).

## FAQ

### Do I need an Android phone?

Yes. SMS are sent by the smsportal.app Android app on your own phone, with your 
own SIM card. iPhones cannot send SMS from apps, so they are not supported.

### What does an SMS cost?

What your mobile plan charges for an SMS (many plans include unlimited SMS). smsportal.
app has a free plan and paid plans with higher monthly limits; see https://smsportal.
app/en/pricing.

### What happens when the phone is offline?

The SMS waits on smsportal.app until the phone comes back. If that takes longer 
than the time set in the rule (12 hours by default), it is dropped and shown as 
expired, so a customer does not get an “order shipped” SMS a day late.

### The phone shows offline. What now?

The SMS wait for the phone. On the phone, check that it has internet and that airplane
mode is off, set the smsportal.app app’s battery use to “Unrestricted”, grant the
permissions the app asks for and tap “Send heartbeat” in the app. Once the phone
is back online, the waiting SMS go out (within the time set in the rule).

Full guide: https://smsportal.app/en/help/phone-offline

### SMS arrive late or only when I open the app

Android puts apps to sleep to save battery, and the SMS then wait until you open
the app. In the phone’s settings, set the battery use of the smsportal.app app to“
Unrestricted” and keep its ongoing notification on. Samsung, Xiaomi and Huawei phones
have extra settings, described in the guide.

Full guide: https://smsportal.app/en/help/battery-optimization

### Connecting fails or returns an error

Your site must use https (http works only on localhost): turn on an SSL certificate
at your hosting and make both addresses under Settings > General start with `https://`.
The two addresses must also have the same domain. The “Log” tab of the plugin shows
why a connection failed. A staging copy with a different address does not send SMS:
its plugin screens let you keep the connection (the site really moved) or connect
the copy on its own.

Full guide: https://smsportal.app/en/help/wordpress-troubleshooting

### How do I send an SMS when a WooCommerce order status changes?

Under “Rules”, click “Add automatic SMS” and pick the event “WooCommerce: order 
status changed to” the status you want (for example completed). Choose the customer
as the recipient, write the text with variables such as `{first_name}` and `{order_number}`,
and save. Each order and status sends at most one SMS. The tracking number comes
from Advanced Shipment Tracking, WooCommerce Shipment Tracking or ShipStation.

Full guide: https://smsportal.app/en/help/wordpress-woocommerce

### Is there a limit on the length of an SMS?

No. The plugin sends the whole text, with every variable in full; a long text goes
as several SMS parts, which your phone joins into one message (your mobile plan 
may charge each part). The rule editor shows the number of parts. If smsportal.app
refuses a message, the SMS gets the status “Failed” with the reason under “Sent”.

Full guide: https://smsportal.app/en/help/sms-length-and-special-characters

### What happens when my plan’s limit is used up?

The SMS gets the status “Plan limit” and is not retried. New events send again once
the limit resets or you change the plan.

### Will a customer get the same SMS twice?

No. Each event (for example “order 1042 completed”) sends at most one SMS, even 
when the status is set again or the request is retried.

### Can customers reply?

Yes. Replies to SMS sent by this site appear under “Replies”, on the WooCommerce
order as a private note, and in an e-mail to you (you can turn the e-mail off in
Settings). Other SMS that reach your phone are not sent to the site.

### How do I stop SMS to a number?

A customer who replies STOP is blocked automatically. You can also block or unblock
numbers by hand under “Blocked”.

Full guide: https://smsportal.app/en/help/wordpress-replies-and-stop

### Can someone abuse a public form to send SMS from my phone?

SMS to numbers typed by customers (forms, guest checkout, bookings, the Uncanny 
Automator “Send SMS” action) are limited: they go only to your country’s numbers(
add more countries under Settings > Allowed recipient countries), at most 3 an hour
and 10 in 24 hours to one number, and at most 30 an hour from one rule (appointment
reminders are exempt from the per-rule cap). An SMS stopped by a limit is shown 
under “Sent” with the reason, and the plugin screens show a warning. Fixed numbers
in rules and `smsportal_send_sms()` are not limited, unless you pass `'check_limits'
=> true`. Also turn on your form’s spam protection (for Contact Form 7: Akismet,
reCAPTCHA or Cloudflare Turnstile; for WPForms: its Anti-Spam and Security settings;
for Fluent Forms: its CAPTCHA, Akismet or CleanTalk options; for Forminator: its
CAPTCHA, honeypot or Akismet options; for Kadence Blocks: the CAPTCHA field of the
Advanced Form, or reCAPTCHA and the honeypot of the simple Form; for Ninja Forms:
its Anti-Spam question or CAPTCHA fields). These limits are a protection against
abuse, not a paid feature (the plugin has no paid version), and developers can raise
or change them with the `smsportal_rate_limits` and `smsportal_allowed_calling_codes`
filters.

### What happens on a staging copy of my site?

A copy with a different site address does not send SMS: the connection belongs to
the original site. The plugin screens on the copy let you either keep the connection(
the site really moved) or connect the copy on its own.

### Can I use it with my own self-hosted smsportal.app server?

Yes: set `define( 'SMSPORTAL_URL', 'https://sms.example.com' );` in `wp-config.php`.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“85.pl | Android SMS API” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ alexanderem ](https://profiles.wordpress.org/alexanderem/)

[Translate “85.pl | Android SMS API” into your language.](https://translate.wordpress.org/projects/wp-plugins/85pl-android-sms-api)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/85pl-android-sms-api/),
check out the [SVN repository](https://plugins.svn.wordpress.org/85pl-android-sms-api/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/85pl-android-sms-api/)
by [RSS](https://plugins.trac.wordpress.org/log/85pl-android-sms-api/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.2.5

 * Help on every plugin screen: a short explanation under WordPress’s “Help” button
   and a “Help” link in the header to the step-by-step guide on smsportal.app (in
   Polish for Polish admins, otherwise in English).
 * New questions in the FAQ, with links to the full guides.

#### 0.2.4

 * Renamed the WordPress plugin to 85.pl | Android SMS API with the text domain 
   85pl-android-sms-api.
 * Existing smsportal.app connections, rules and integrations remain compatible.

#### 0.2.3

 * Messages are sent in full: no cut to three SMS parts and no cut of long form 
   fields.
 * Updated the translation text domain.

#### 0.2.2

 * Updated the product branding and logo.

#### 0.2.1

 * Clearer rule editor: events that differ only by status or form name sit under
   one heading, a saved rule shows its event in one line with “Change”, the recipient
   is one of two choices, and rarely changed settings are folded under “More settings”.
 * Spam protection tips show only the chosen form plugin’s steps.

#### 0.2.0

 * New events: WPForms, Fluent Forms, Forminator, Kadence Blocks and Ninja Forms(
   form sent), FluentBooking and WP Booking Calendar (new booking, status changes,
   reminder before the meeting), Ultimate Member (registration and account status).
 * The rule editor picks the event with tiles: first the plugin (with its logo),
   then the event.
 * WooCommerce: tracking number, carrier and tracking link from Advanced Shipment
   Tracking and WooCommerce Shipment Tracking (`{tracking_carrier}`, `{tracking_link}`).
 * The “Sent” tab keeps the full object ID of a message (it was cut to its first
   number).

#### 0.1.2

 * Variables have English names: `{first_name}`, `{order_number}`, `{store_name}`
   and so on. The editor offers them in the admin’s language, and the Polish and
   English names work in every template, so existing rules keep working.

#### 0.1.1

 * New light look in the style of the smsportal.app dashboard: cards, segmented 
   section switcher, status pills, a connection pill with the phone state in the
   header, and the account usage bar on the overview.
 * Updated the admin menu label and logo icon.

#### 0.1.0

 * First release: one-click connection to smsportal.app, rules for WooCommerce, 
   Contact Form 7, WPForms, Fluent Forms, Forminator, Amelia and Uncanny Automator,
   background sending with retries, delivery statuses, customer replies and order
   notes, block list with STOP, privacy tools, Polish translation.

## Meta

 *  Version **0.2.5**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [android](https://wordpress.org/plugins/tags/android/)[contact form 7](https://wordpress.org/plugins/tags/contact-form-7/)
   [Notifications](https://wordpress.org/plugins/tags/notifications/)[sms](https://wordpress.org/plugins/tags/sms/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/85pl-android-sms-api/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/85pl-android-sms-api/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/85pl-android-sms-api/reviews/)

## Contributors

 *   [ alexanderem ](https://profiles.wordpress.org/alexanderem/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/85pl-android-sms-api/)