This plugin enables you to send SMS’es straight from the WordPress backend or via the programmers API.

Also included is free and really easy to use two-factor security, which really hardens the security of your site.

All you need, is the plugin and a free

Main features:

  • 📱 Send SMS’es / texts

    • Add custom data to recipients, to mail merge.
    • Import recipient lists from CSV/Excel.
    • Group recipients.
    • Bulk-sending.
    • Easy programmers API.
    • Short-codes for signup/unsubscribe/edit profile forms.
    • Automatic integration with Contact Form 7.
  • 🔐 Two-factor security

    • Easy on your users: No apps needed!
    • Easy on the admin: Tick a checkbox and it just works!
    • Military grade security!
    • Pick roles to enable mandatory two-factor.
    • Re-authorize at each login or remember devices for up to 30 days.
  • ✊ Receive SMS’es / texts

    • Use your own keyword(s) or phone numbers to receive SMS’es.
    • View incoming messages.
    • Auto-reply to incoming SMS’es.
    • … or do special handling and replies.

Easy to get started:

  • Complete step-by-step user guide with many screenshots.
  • The plugin has helpful texts all around.
  • Live chat support and mail support from

Backed by high quality, low price EU-based SMS-gateway:

  • has sent 180+ million SMS’es.
  • We regularly send over 1.500 SMS’es per second.
  • Headquarters in Copenhagen, Denmark.
  • Company founded in 1999.
  • Free support, no subscription AND unbeatable prices.
  • Most SMS’es are delivered within 0,3 second.

If you would prefer to disable the UI-features and do all the sending from code, then that’s possible as well. For this purpose you can use the method gwapi_send_sms which accepts arguments for message, recipient(s), sender-text and type of SMS.

Getting Started

We have created a number of short tutorials, demonstrating how to get started and use the various features. Watch the following video to see how to set everything up and send your first SMS:

Click here for more videos.

How to use

Most users: User Guide

Most topics are shown in a step-by-step style with numerous screenshots in our User Guide – even quite advanced topics.

Open the User Guide

Advanced: Programmers API

Send an SMS to one or multiple recipients by calling gwapi_send_sms with the following arguments

  • $message (string) A string containing the message to be sent.
  • $recipients (array|string) A single recipient or a list of recipients.
  • $sender (string, optional) Sender text (11 chars or 15 digits)
  • $destaddr (string, optional) Type of SMS – Can be MOBILE (regular SMS) or DISPLAY (shown immediately on phone and usually not stored, also knows as a Flash SMS)

Returns the message-ID on success and a WP_Error on failure.

The recipients-argument may consist of either:

  • An integer or string, containing an MSISDN (CC + number, digits only).
    Example number: Country code 45. Phone number: 12 34 56 78.
    Resulting MSISDN: «4512345678».
  • An array containing MSISDN (see above).
  • An array in which MSISDN’s are keys and their values are arrays of tags.
    Example in JSON:
    { «4512345678»: { «%NAME%»: «John Doe», «%GENDER%»: «Male» } }

Note: SMS’es sent via gwapi_send_sms are NOT saved in WordPress. They are however still accessible via the traffic log on


  • Set up your OAuth key and secret here. This settings page is available for administrators only.
  • If the SMS Sending UI is enabled, this is how you can send a SMS from the backend.
  • Contact Form 7: GatewayAPI automatically adds extra controls for supporting signup/update/unsubscribe in the Contact Form 7 form builder.
  • Contact Form 7: Creating a "recipient groups" selection field.


This section describes how to install the plugin and get it working.

  1. If you haven’t already, then go to and create a free account.
  2. Install and activate the plugin.
  3. Go to «Settings » GatewayAPI Settings» and add an OAuth key and associated secret from your account.
  4. (Optional) Enable the sending UI and then go to «SMS’es » Create SMS» and try to send an SMS to yourself, verifying that all is setup correctly.

We’ve also produced a number of videos to help you get started:

Getting started

This quick tutorial shows you how to get GatewayAPI Plugin for WordPress installed and configured, and goes as far as to send of an actual SMS.

Recipients, groups and extra fields

This quick tutorial shows you how to create groups, add recipients to the groups, as well as how to add custom fields to the recipients, allowing for any extra data to be stored and used in SMS’es.

Built-in forms for sign up, update and unsubscribe

This tutorial shows you how to create forms for the public, using the built-in UI for creating «shortcodes» (tiny pieces of code which can be pasted into any WordPress-page).

Importing recipients from spreadsheets

This tutorial shows you how to import recipients from any spreadsheet and into the recipients database of the GatewayAPI. It even shows how to overwrite and update the database, import extra fields from spreadsheets and how to add the recipients into groups. It works with any spreadsheet app (Excel, Numbers, LibreOffice, Google Docs – you name it!).

Preguntas frecuentes

How well does this plugin handle 10.000+’s of recipients

It works really well. We split large SMS’es into multiple smaller requests, to ease the burden on your WordPress. This also enables us to show a pretty progress bar while sending, when you are sending to more than 500 recipients at a time 🙂

HELP! I’m administrator and I’m locked out of the two-factor system!

If you don’t have a backup of the «Emergency bypass URL» from the setup-screen, then you need to dig into the database to disable the two-factor system. Your host probably has a phpMyAdmin that you can use to access it.

Then find the options-table, by default wp_options. Search for the row where the option_name is gwapi_security_enable. Simply delete the row.


17 de agosto de 2018
This plugin add´s a really good feature with two factor authentication trough sms, very easy to setup and configure. Works without any app just simple sms so everybody can use it. Good feature is that you can also configure how often you need to verify login with sms.
3 de septiembre de 2016
Have tried several free and premium sms plugins for WordPress, this one was by far the most stable and feature rich
3 de septiembre de 2016
If you want to send SMS'es from WordPress and manage a list of recipients, perhaps even group them, then this plugin is excellent. It's simple and it just works. Also a nice touch that you get €2 free of send-credit. Should get most people started as the in general has some quite competitive pricing.
Leer todas las 3 reseñas

Colaboradores y desarrolladores

«GatewayAPI» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


«GatewayAPI» ha sido traducido a 1 idioma local. Gracias a los traductores por sus contribuciones.

Traduce «GatewayAPI» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios


  • Tweak: The frontend forms now use regular SMS instead of Display SMS for two-factor, as requested by multiple users.
  • Bugfix: When using tags, the list of tags sent to GatewayAPI could end in a situation, with the same tag-data repeated.


  • Removed URL in two-factor SMS as it was unnecessary and caused SMS’es to be blocked by GatewayAPI’s new link-scanner.


  • New! Custom encoding for SMS’es, allowing SMS’es with emojis and other special characters.
    • UI which detects what encoding should be used, always recommending the cheapest option (ie. most characters per SMS).
    • API-method gwapi_send_sms has new argument for setting encoding.
    • Fully backwards-compatible, defaulting to standard-encoding.
  • Compatible with WordPress 5.1


  • Compable with WordPress 5.0.3.
  • Fix: Excel-export of recipients did not work unless «SMS Inbox» was enabled.
  • Fix: Notices in Excel-export.


  • Updated Danish translations (primarily the two-factor settings and frontend).
  • Fix: Our shortcode had unintentionally been renamed. We now support both [gwapi] and [gatewayapi].
  • Fix: Two-factor-module caused fatal error on PHP 5. Also fixed general notices in two-factor module.
  • Fix: Two-factor module caused fatal error when creating new WordPress-users.


  • New! Two-factor security upgrade to your WordPress! (optional)
  • New! Blacklisting of phone numbers.
  • Improved: Searching recipients by phone number works.
  • Improved: Better support for 10.000+ recipients + a progress bar for showing progress.


  • Recipients:
    • Added option to blacklist phone numbers.
    • Added support for searching recipients list by phone number (previously only by name).
    • Added drop down on recipients list, for filtering by group.
  • Fix: Improved handling of huge lists of recipients (ie. 1.000+ recipients in one SMS)


  • Fix: List of countries is now always correctly parsed, even when the JSON-file (which is fetched via AJAX) does not have right mime-type.


Note: v1.4.0 may break your Countact Form 7-forms containing GatewayAPI-fields, as the shortode-syntax has slightly changed for most of our fields. We needed to do this change to fix multiple bugs and inconsistencies. Please re-add the GatewayAPI-fields to your Contact Form 7-forms when updating the plugin.

  • Contact Form 7:

    • Ability to send SMS’es from the frontend.
    • Updating a subscriber: Forms now only updates groups specifically selected for the form.
    • Bugfixes and code cleanup, improved shortcode syntax.
  • Complete user guide for the system (available online).

  • Export of recipients to Excel and CSV-formats.


  • Contact Form 7: Added support for forms which also contained a reCaptcha-field.
  • Code cleanup


  • Bugfix: A menu item had gone missing in the backend.


  • New UI for creating automated actions. Currently supports «autoreply» based on keyword.


  • Support for receiving SMS’es added, including setup-wizard and inbox.


  • Bugfix: The new verification SMS for Contact Form 7 had a typo, breaking verification SMS’es.
  • Missing translations: The popup-messages related to verification were not translated to danish.


  • Better international phone numbers support: Prefixed 0’s in the phone number itself (between country prefix and phone number) is now correctly working.


  • User synchronization:
    • No longer requires a country code meta field, instead allowing a default country code when this value is missing.
    • Now possible to trigger a «one time» synchronization.
  • Contact Form 7:
    • Now possible to send an SMS-reply on form success automatically.
    • SMS-validation for signup, before allowing the form to submit successfully.
    • Bugfix: Validation now works for all GatewayAPI-fields.


  • Contact Form 7: Integration supporting signup, update and unsubscribe forms for frontend. Two-factor flow possible for update-flow.


  • Bugfix: Safari-specific issue with SMS-counter.
  • Bugfix: Hidden required fields might break the settings-pages.
  • Updated translations for Danish.


  • Support for automatic synchronization of WordPress users => recipients (one-way) including all meta fields and groups.


  • Update WordPress Extension-page.


* Options page didn’t load initially after update.
* CSS/JS missing.
* A few notices squashed.


  • Bugfix: Final step of signup failed could fail if anonymous user.


  • Bugfix: Enqueuing of front-end scripts and CSS didn’t work for guests.


  • Editable custom fields for recipients: Settings page now features a custom fields editor for recipient forms with drag and drop re-ordering.
  • Short code generator: Possible to generate shortcodes from the backend for signup, update, unsubscribe and send SMS.
  • Tags-support for all custom fields.
  • Import subscribers, including custom fields, from spreadsheet. Support updating existing subscribers and keeps existing groups for existing subscribers.
  • Bugfix: SMS message in UI counting counted wrong for 153-160 characters long SMS and also counted some special chars wrong.
  • Bugfix: Manually added recipients %NAME%-tag didn’t work.


  • Cosmetical changes: A few inconsistencies has been fixed in the naming and the documentation.
  • Tidied up a bit: If the sending UI is not enabled, even less code is now executed on each request.


  • Inital version.