66text documentation

✍️ Blog post: Gain more than 80x speed on IP lookups on Ubuntu servers.

Get started

This documentation will get you through the installation & update process of 66text, as well as some advanced features available configurations.

Most features inside 66text are self-explanatory and have helper texts near them.

The steps are straight forward and does not require any special or out of the ordinary task, minimum overall web related knowledge is required.

Support is exclusively handled through email. Ensure to attach proof of purchase when requesting support.

Requirements

Ensure your server meets the specified requirements prior to installation or purchase.

PHP PHP 8.3 - 8.4
Extensions cURL, OpenSSL, mbstring, MySQLi
Database MySQL 5.7.3+ or MariaDB equivalent
Server Apache or Nginx
These requirements assume you're running on a decent, up-to-date server with the essential extensions already in place. Other extensions and slight changes might be required otherwise.

Installation Services

I also offer quality installation services at a low cost if you do not want to bother with the installation process.

Software installation - $35

  • Uploading the product files on your server (requires a fully configured and ready to go server).
  • Creating and configuring the database that is going to be used.
  • Full installation of the product.
  • Android APK setup and creation with Firebase integration. (+$10)
You must own a server with a control panel like Plesk, cPanel...etc.

Server configuration & software installation - $69

  • Setting up a new server (Ubuntu OS) on one of those platforms: Hetzner, Cloudways, Vultr, DigitalOcean
  • Setting up the domain for the server
  • Free SSL Certificate Installation (Let's Encrypt)
  • Installation of Apache, MySQL with MySQLi, PHP
  • Installation and configuration of PHP's necessary modules / extensions
  • Full installation of the product
  • Android APK setup and creation with Firebase integration. (+$10)

Product Update - $30

  • Backup of the files & database (upon request).
  • Update of the product to the latest version (no matter which version are you currently on).
  • Update of all the plugins you own (if any).
You are responsible for reintegrating any custom modifications to the original product files after an update.
Get in touch via email

Installation

This installation typically requires approximately 10 minutes for completion when followed accurately.

Watch a video tutorial on how you can install the product a shared web host with cPanel.

Prepare the database

  1. Create a new Database User for the upcoming new database (optional)
  2. Create a new Database
  3. Prepare the Database Host, Name, Username and Password for the upcoming steps.

Upload the product

Upload the content of the product/ folder on your webhost.

The product can be uploaded either on a subdomain, domain or subfolder, depending on your needs.

Start the installation process

  1. Access the product on your website and access the domain.com/install path.
  2. You need to set the permissions (CHMOD) of the files / folders mentioned in the installation process to either 755, 775, or 777 which will depend on your actual server.
  3. Follow the steps in the installation process.
  4. If the installation is successful, you will see the admin login credentials.

Cron job setup

The cron job must be set up as it is responsible for handling background tasks.

  1. Make sure to login and go to the Admin Panel -> Settings -> Cron tab
  2. Create a new cron job with each cron job commands that you see in there.
  3. The process varies based on your web host provider; refer to their documentation for Cron job setup instructions.

Email setup

If you want your site to be able to send emails, then you must do this setup.

  1. Make sure to login and go to the Admin Panel -> Settings -> SMTP (Email) tab
  2. Fill the fields with your SMTP provider credentials.
  3. Save & test your SMTP to make sure it works.

App setup

To prepare & generate your android app, you must follow the following steps πŸ“±.

Update

This section guides you through updating your current installation to newer releases.

Watch a video tutorial on how you can update the product a shared web host with cPanel.

Backup

Prior to initiating the update process, ensure to create a backup to facilitate restoration in case of any issues.

  1. Backup your database
  2. Backup your files

Files update

  1. Download & unzip the latest version of the product.
  2. Navigate to the `product` folder, copy all files and folders, and upload them to your server where the product is installed.
  3. Do not upload/overwrite the config.php file.

Database update

  1. Go to your website and access the /update path, just like the following format: https://domain.com/update.
  2. Follow all the steps inside of the updating process.
  3. After you are finished, make sure to delete the update folder as you do not need it anymore.

NGINX Setup

Use the following NGINX rewrite rule to ensure proper functionality of the URLs:

if(!-e $request_filename){
    rewrite ^\/(.+)$ /index.php?altum=$1 last;
}

This command should be added in your domain.conf nginx file in the location / { ... } field.

Building Your Custom Android APK

This guide will help you create a custom Android APK for 66text. The APK is installed on your Android phone and is responsible for:

  • Sending SMS messages through your device.
  • Receiving real-time notifications when new SMS messages need to be sent.
YouTube Tutorial: We also have a full walkthrough on this process. We only send this to confirmed customers. Get in touch.
Tip: Start by setting up Firebase first, then customize and build your app.

Step 1: Configure Firebase

Firebase powers the real-time notifications in 66text. Setting it up first ensures your app can receive SMS tasks later.

Create a Firebase Project

  1. Go to the Firebase Console.
  2. Click Add Project and follow the steps to create a new project.

Add Your Android App to Firebase

  1. In your Firebase project, go to Project Settings β†’ General.
  2. Click Add App and select the Android icon.
  3. Enter your app's package name (this must match what you will use in Step 4).
  4. Complete the setup and download the google-services.json file.
  5. Place the downloaded google-services.json file in your Android project folder at:
    app/

Generate a Service Account JSON

  1. In your Firebase project, go to Project Settings β†’ Service Accounts.
  2. Click Generate New Private Key to download your Service Account JSON file.
  3. From the General tab, copy your Project ID.

Upload to 66text

  1. Log in to your 66text Admin Panel.
  2. Navigate to Settings β†’ SMS β†’ Firebase Settings.
  3. Upload the Service Account JSON file you downloaded.
  4. Enter your Firebase Project ID.
  5. Click Save.
Important: Keep both your Firebase JSON files private and secure.

Step 2: Install Android Studio

Download and install the latest version of Android Studio.

Android Studio is the official tool for building and customizing your 66text Android app.

Step 3: Open the 66text Android Project

  1. Unzip the 66text package you downloaded after purchase.
  2. Inside, locate the file named android.zip.
  3. Extract android.zip to a folder on your computer.
  4. Open Android Studio β†’ Open Project β†’ select the extracted folder.

Step 4: Customize the App Name & Identifiers

To generate a completely unique app, you must customize the following:

  • App name – what users see on their phone.
  • Package name – the app's unique technical ID, required by Firebase.
  • App icon (optional).

Change the App Name

  1. Go to: app/src/main/res/values/strings.xml.
  2. Find the line:
    <string name="app_name">66text</string>
  3. Replace 66text with your desired name:
    <string name="app_name">My SMS Gateway</string>
  4. Save the file.

Update the Package Name

The package name uniquely identifies your app on Android and must match the package name you registered in Firebase.

  1. In Android Studio, locate the folder: app/java/com.66text.app.
  2. Right-click β†’ Refactor β†’ Rename β†’ Rename Package.
  3. Enter a unique package name, for example:
    com.yourcompany.smsapp
  4. Open app/build.gradle and update the applicationId to match:
    applicationId 'com.yourcompany.smsapp'
  5. Click Sync Now when prompted.
Tip: Use a reverse domain format like com.mybusiness.mygateway to ensure it's unique.

Customize the App Icon (Optional)

Replace the default icon with your own brand image:

  1. Go to: app/src/main/res/mipmap-*/.
  2. Replace ic_launcher.png files with your icon images.
  3. Or use Android Studio's built-in Image Asset tool.

Step 5: Build the APK

Now that your app is customized, it's time to generate the APK file.

  1. In Android Studio, go to Build β†’ Generate Signed Bundle / APK.
  2. Select APK and click Next.
  3. If you don’t have a keystore yet:
    • Click Create New.
    • Fill in your keystore details and save the file securely.
  4. Sign the APK using your keystore and click Finish.
  5. The APK will be generated in: app/release/.

Step 6: Upload APK to 66text

After generating your APK, upload it to 66text so it can be installed on your Android device.

  1. Log in to your 66text Admin Panel.
  2. Go to Settings β†’ SMS.
  3. Scroll to the APK upload section.
  4. Upload your newly generated APK and click Save.
  5. Once uploaded, you can download and install it directly on your phone.

Step 7: Install and Test

  1. Install the APK on your Android device.
  2. Open the app and grant all requested permissions (SMS, notifications, etc.).
  3. Send a test SMS from the 66text dashboard to confirm everything works.

Social Logins

Follow these updated steps to set up additional login methods via popular social networks. Make sure to use HTTPS for all redirect URIs and verify your domains when required.

Facebook Login

Watch a video tutorial on how you can setup Facebook Login.

  1. Go to the Meta for Developers page and log in.
  2. From the top-right menu, click My Apps β†’ Create App and select the app type (usually Consumer).
  3. Fill out the required details (app name, contact email, business account) and click Create App.
  4. On your app dashboard, under Add Product, select Facebook Login and click Set Up.
  5. Go to Settings β†’ Basic and complete required fields:
    • App Domains
    • Privacy Policy URL
    • Terms of Service URL
    • App Icon (recommended)
    Your domain must be verified if requested.
  6. Go to Facebook Login β†’ Settings and:
    • Enable Client OAuth Login and Web OAuth Login.
    • In Valid OAuth Redirect URIs, add:
      https://yourdomain.com/login/facebook
  7. Switch the app from Development mode to Live so that non-admin users can log in.
  8. Go to Settings β†’ Basic and copy your App ID and App Secret.
  9. In your Admin Panel β†’ Settings β†’ Facebook Login Tab, paste the keys, enable Facebook Login, and Submit.

Google Login

Watch a video tutorial on how you can setup Google Login.

  1. Go to the Google Cloud Console and log in.
  2. Create a New Project or select an existing one.
  3. Navigate to APIs & Services β†’ OAuth consent screen:
    • Choose External user type for public access.
    • Fill in app name, support email, app logo, privacy policy URL, and terms of service URL.
    • Add your domain under Authorized domains (must be verified).
  4. Add required scopes: openid, email, profile.
  5. Save and publish the consent screen.
  6. Go to Credentials β†’ Create Credentials β†’ OAuth Client ID:
    • Application type: Web Application.
    • In Authorized redirect URIs, add:
      https://yourdomain.com/login/google
  7. Copy the generated Client ID and Client Secret.
  8. In your Admin Panel β†’ Settings β†’ Google Login Tab, paste the keys, enable Google Login, and Submit.

Twitter (X) Login

  1. Go to the Twitter Developer Portal and log in.
  2. Apply for a developer account if you don’t have one.
  3. From the dashboard, go to Projects & Apps β†’ Overview and click Create App.
  4. Fill out the app details and save.
  5. In App Settings β†’ Authentication Settings:
    • Enable Web App, Automated App or Bot Type of App.
    • Enable Request email addresses from users.
    • In Callback URLs, add:
      https://yourdomain.com/login/twitter
    • In Website URL, add:
      https://yourdomain.com/
  6. Go to Keys and Tokens to copy the API Key and API Secret.
  7. In your Admin Panel β†’ Settings β†’ Twitter Login Tab, paste the keys, enable Twitter Login, and Submit.
  8. If required, request Elevated Access for your Twitter API project.

Discord Login

Watch a video tutorial on how you can setup Discord Login.

  1. Go to the Discord Developer Portal and log in.
  2. Click New Application and fill in the app details.
  3. Go to the OAuth2 page from the sidebar.
  4. In the Redirects section, add:
    https://yourdomain.com/login/discord
  5. Copy the Client ID and Client Secret from the Client information section.
  6. In your Admin Panel β†’ Settings β†’ Discord Login Tab, paste the keys, enable Discord Login, and Submit.

LinkedIn Login

  1. Go to the LinkedIn Developer Portal and log in.
  2. Click Create App and complete the details.
  3. On the app dashboard, go to Products and request access for Sign In with LinkedIn.
  4. Navigate to Auth β†’ OAuth 2.0 Settings and add the redirect URL:
    https://yourdomain.com/login/linkedin
  5. Copy the Client ID and Client Secret.
  6. In your Admin Panel β†’ Settings β†’ LinkedIn Login Tab, paste the keys, enable LinkedIn Login, and Submit.

Microsoft Login

  1. Go to the Microsoft Azure Portal and log in.
  2. Navigate to Azure Active Directory β†’ App Registrations β†’ New Registration.
  3. Fill in these details:
    • App Name
    • Supported account types: Accounts in any organizational directory and personal Microsoft accounts
    • Redirect URI β†’ Web: https://yourdomain.com/login/microsoft
  4. Click Register to create the app.
  5. Copy the Application (Client) ID for later use.
  6. Go to Certificates & Secrets β†’ New client secret β†’ copy the Value immediately.
  7. Go to Authentication and:
    • Check Access tokens (used for implicit flow).
    • Save changes.
  8. In your Admin Panel β†’ Settings β†’ Microsoft Login Tab, paste the Application ID and Secret Value, enable Microsoft Login, and Submit.

Captchas

These are the steps to integrate more advanced and powerful captcha codes for your system.

Cloudflare Turnstile

  1. In your Admin Panel β†’ Settings β†’ Captcha page, set the captcha type to Cloudflare Turnstile.
  2. Log in to your Cloudflare Dashboard.
  3. In the sidebar, go to Turnstile and click Add Widget.
  4. Fill in the form:
    • Widget Name – a descriptive name (e.g., "Website Login").
    • Domain – your actual website domain (e.g., yourdomain.com).
    • Widget Mode – choose Managed for the simplest setup.
  5. Click Create to generate the widget.
  6. Cloudflare will now provide a Site Key and Secret Key.
  7. Go back to your Admin Panel and paste these keys into the fields under the Captcha settings.
  8. Click Save to apply the new settings.

Google reCAPTCHA

  1. In your Admin Panel β†’ Settings β†’ Captcha page, set the captcha type to Google reCAPTCHA v2 Checkbox.
  2. Log in to the Google reCAPTCHA Admin Console.
  3. Register a new site:
    • Label – a name for your site.
    • Select reCAPTCHA v2.
    • Add your website domain.
  4. Once created, copy the Site Key and Secret Key.
  5. Paste these keys into the corresponding fields in your Admin Panel.
  6. Click Save to enable Google reCAPTCHA on your site.

hCaptcha

  1. In your Admin Panel β†’ Settings β†’ Captcha page, set the captcha type to hCaptcha.
  2. Go to the hCaptcha Website and log in or create an account.
  3. Navigate to Sites β†’ Add New Site.
  4. Fill out the required details:
    • Site Name
    • Domains – your actual website domain.
  5. After saving, hCaptcha will generate a Site Key.
  6. Go to Settings β†’ Account and copy your Secret Key.
  7. Paste both the Site Key and Secret Key into the corresponding fields in your Admin Panel.
  8. Click Save to activate hCaptcha on your site.

Payment Processors

Follow these steps to connect your system with available payment gateways. Only available for Extended License holders.

PayPal

  1. Go to the PayPal Developer Dashboard and log in.
  2. Go to My Apps & Credentials β†’ REST API Apps and click Create App.
  3. Enter an app name and other required details, then create it.
  4. Switch the app to Live Mode using the toggle near the app name.
  5. Copy the Client ID and Secret.
  6. In your Admin Panel β†’ Settings β†’ PayPal Tab, paste the Client ID and Secret. Set the Mode to Live and Submit the settings.
  7. Back in PayPal Dashboard, open the created app and go to the Webhooks section.
  8. Click Add Webhook and set the URL:
    https://yourdomain.com/webhook-paypal
  9. Select the events:
    • Payment sale completed
    • Checkout order approved
  10. Save the webhook.

Stripe

  1. Log in to the Stripe Dashboard.
  2. Go to Developers β†’ API Keys.
  3. Ensure your keys are set to Live Mode to accept real payments.
  4. Copy the Publishable Key and Secret Key.
  5. In your Admin Panel β†’ Settings β†’ Stripe Tab, paste the keys and save.
  6. From the Stripe sidebar, go to Developers β†’ Webhooks and click Add Endpoint.
  7. Set the Endpoint URL:
    https://yourdomain.com/webhook-stripe
  8. Select events to send:
    • checkout.session.completed
    • invoice.paid
    • invoice.upcoming
  9. Save the webhook and copy the Signing Secret.
  10. In your Admin Panel, paste the Signing Secret into the Webhook Secret field under the Stripe tab.

Offline Payments

  1. Enable offline payments in your Admin Panel β†’ Settings β†’ Offline Payment Tab.
  2. In the Instructions field, add clear details about how customers should complete offline payments (e.g., bank account details).
  3. When customers check out, they can select offline payment as a method.
  4. They will see the instructions and must upload proof of payment.
  5. As an admin, go to Admin Panel β†’ Payments, review proofs, and approve valid payments.
  6. Upon approval, the plan is activated for the customer.
  7. If proof is invalid or fake, delete the payment to reject it.

Coinbase Commerce

  1. Log in to the Coinbase Dashboard.
  2. Go to Settings.
  3. Under API Keys, generate and copy your API Key.
  4. In your Admin Panel β†’ Settings β†’ Coinbase Tab, paste the API Key.
  5. Under Webhook Subscriptions, click Add Endpoint and enter:
    https://yourdomain.com/webhook-coinbase
  6. Save the webhook and copy the Shared Secret.
  7. In your Admin Panel, paste the Shared Secret into the Webhook Secret field under the Coinbase tab.

Crypto.com

  1. Log in to the Crypto.com Merchant Dashboard.
  2. Go to Developers β†’ API Keys.
  3. Copy your Publishable Key and Secret Key.
  4. In your Admin Panel β†’ Settings β†’ Crypto.com Tab, paste the keys.
  5. Go to Webhooks in the Crypto.com dashboard and click Add Webhook.
  6. Set the URL:
    https://yourdomain.com/webhook-crypto-com
  7. Copy the Signature Secret and paste it into the Webhook Secret field in your Admin Panel.

PayU

  1. Log in to your PayU account.
  2. Create a new shop and fill in all required details.
  3. In your Admin Panel β†’ Settings β†’ PayU Tab, paste the provided API keys.

Iyzico

  1. Log in to the Iyzico Merchant Dashboard.
  2. Go to Merchant Settings.
  3. Copy your API Key and Secret Key.
  4. In your Admin Panel β†’ Settings β†’ Iyzico Tab, paste the keys.
  5. Scroll to the Merchant Notifications section and add:
    https://yourdomain.com/webhook-iyzico
  6. Save the configuration.

Paystack

  1. Log in to your Paystack Dashboard.
  2. Go to Settings β†’ API Keys & Webhooks.
  3. In your Admin Panel β†’ Settings β†’ Paystack Tab, paste the API keys.
  4. In Paystack, set your Webhook URL to:
    https://yourdomain.com/webhook-paystack
  5. Save changes.

Razorpay

  1. Log in to your Razorpay Dashboard.
  2. Go to Settings β†’ API Keys and generate keys.
  3. In your Admin Panel β†’ Settings β†’ Razorpay Tab, paste the keys.
  4. Go to Settings β†’ Webhooks and click Add New Webhook.
  5. Set the Webhook URL:
    https://yourdomain.com/webhook-razorpay
  6. Create a new Webhook Secret (like a password).
  7. Enable these events:
    • subscription.charged
    • payment_link.paid
  8. Save the webhook, then paste the secret into the Razorpay tab in your Admin Panel.

Mollie

  1. Log in to your Mollie Dashboard.
  2. Go to Developers β†’ API Keys and copy your Live API Key.
  3. In your Admin Panel β†’ Settings β†’ Mollie Tab, paste the key.
  4. Activate allowed payment methods in your Mollie account.

Yookassa

  1. Log in to your Yookassa Dashboard.
  2. Go to Developers β†’ API Keys and generate keys.
  3. In your Admin Panel β†’ Settings β†’ Yookassa Tab, paste the keys.
  4. Go to Integration β†’ HTTP Notifications and add:
    https://yourdomain.com/webhook-yookassa
  5. Ensure receipts/invoices are enabled for compliance.

Paddle Classic

  1. Log in to the Paddle Vendors Dashboard.
  2. Go to Developer Tools β†’ Authentication and copy your Vendor ID and API Key.
  3. In your Admin Panel β†’ Settings β†’ Paddle Tab, paste the Vendor ID and API Key.
  4. Go to Developer Tools β†’ Public Key and copy it into the Public Key field in your Admin Panel.

Paddle Billing

  1. Log in to your Paddle Billing Dashboard.
  2. Go to Developer Tools β†’ Authentication:
    • Under the API Keys tab, click New API Key.
    • Enable All permissions for Write.
    • Copy the generated API Key.
    • In your Admin Panel β†’ Settings β†’ Payment Processors β†’ Paddle, paste the key and save.
  3. Still under Authentication:
    • Go to the Client-side Tokens tab.
    • Click New Client-side Token and copy the Token.
    • In your Admin Panel β†’ Settings β†’ Payment Processors β†’ Paddle, paste the token and save.
  4. Next, go to Developer Tools β†’ Notifications:
    • Click New Destination.
    • In the URL field, enter your webhook endpoint:
      https://yourdomain.com/webhook-paddle
    • In the Events section, select only:
      • subscription.created
      • subscription.updated
      • transaction.paid
    • Save the destination, then click Edit and copy the Secret Key.
    • In your Admin Panel β†’ Settings β†’ Payment Processors β†’ Paddle, paste the Secret Key and save.
  5. Finally, go to Checkout β†’ Checkout Settings and set your website URL in the Default Payment Link field.

Midtrans

  1. Log in to the Midtrans Dashboard.
  2. Go to Settings β†’ Access Keys and copy your Server Key.
  3. In your Admin Panel β†’ Settings β†’ Midtrans Tab, paste the Server Key.

Flutterwave

  1. Log in to the Flutterwave Dashboard.
  2. Go to Settings β†’ API Keys and copy your Secret Key.
  3. In your Admin Panel β†’ Settings β†’ Flutterwave Tab, paste the Secret Key.
  4. Go to the Flutterwave Webhooks page and add:
    https://yourdomain.com/webhook-flutterwave

LemonSqueezy

  1. Log in to LemonSqueezy.
  2. Create a product in LemonSqueezy.
  3. Create variants for:
    • One-time Payments (Monthly, Quarterly, Biannual, Annual, Lifetime)
    • Recurring Payments (Monthly, Annual)
  4. Go to Settings β†’ API Keys and generate an API key.
  5. In your Admin Panel β†’ Settings β†’ LemonSqueezy Tab, paste:
    • API Key
    • Store ID (found in store settings)
    • Each Variant ID for your products
  6. Go to Settings β†’ Webhooks and create a webhook with URL:
    https://yourdomain.com/webhook-lemonsqueezy
  7. Select events:
    • order_created
    • subscription_payment_success
  8. Copy the Signing Secret and paste it into the LemonSqueezy tab in your Admin Panel.

Klarna

  1. Log in to the Klarna Portal or Klarna Playground Portal (development).
  2. Go to Settings β†’ Klarna API Keys page.
  3. Generate your new Klarna API key & make sure to copy both the Username and Password.
  4. In your Admin Panel β†’ Settings β†’ Klarna Tab, paste the keys and save.

Taxes & Billing

Our tax system allows you to seamlessly integrate tax charges into user transactions. You can create and tailor taxes according to your requirements and link them with any specific plan.

  1. Activate the Taxes & Billing system via Admin Panel -> Settings -> Payment tab.
  2. This feature enables users to input their billing information at checkout and allows you to attach taxes to paid plans.
  3. Access the system through Admin Panel -> Taxes.
  4. Create a new tax by selecting the Create Tax button.
  5. After creating a tax, visit Admin Panel -> Plans, choose a paid plan, and apply the desired tax.

Multicurrency

Our multicurrency feature enables users to select from various currencies you provide.

Configure this option in the Admin Panel -> Settings -> Payment tab

Set distinct prices for each currency of a plan by modifying it through the Admin Panel -> Plans page.

Enable or disable specific currencies for each payment processor by adjusting the settings in the Admin Panel -> Settings page.

For multiple currency usage, obtain an API key from FreeCurrencyAPI.com and integrate it into your Admin Panel -> Settings -> Payment tab.

While the API key is optional, it's recommended for automatically converting transactions into the default currency, ensuring precise and consistent statistics for administrative analysis.

Notification handlers

Twilio notification handler (SMS & Call)

  1. Go to Twilio Console and make sure to login to your account.
  2. Get a phone number from Twilio and then scroll down in the Console Dashboard to see the Account info section.
  3. Go to your product installation -> Admin panel -> Settings -> Notification handlers page.
  4. Enable the Twilio notification handler while also copying the Account SID, Account token & Phone number from Twilio and pasting it their respective fields.
  5. To enable different regions for Twilio SMS, go to Twilio Console -> Messaging -> Settings -> Geo Permissions page.
  6. To enable different regions for Twilio calling, go to Voice Geographic Permissions page.

Whatsapp notification handler (Whatsapp message)

  1. Go to Facebook Developers page.
  2. Make sure to login to your Facebook account.
  3. Click on the My Apps menu dropdown and click on Create app.
  4. Select the Other use case and continue.
  5. Select the Business app type and continue.
  6. Fill the other needed fields and continue (Make sure to attach your Business Account).
  7. After finishing it up, choose Add Product from the sidebar of your dashboard.
  8. Make sure you add the WhatsApp product to your app.
  9. After that, go to WhatsApp -> API Setup page.
  10. Add your own business From phone number and confirm it.
  11. Copy your Phone number ID and paste it into the product installation -> Admin panel -> Settings -> Notification handlers page.
  12. Open the Auth token documentation from Facebook and get your Permanent Access token, so that you can paste it into the same page in your installation as above.
  13. After that, go to WhatsApp -> Quickstart page -> Message templates page.
  14. Now you must create a template for each type of notification you will send out, do it as per the data below.

Name test_notification_handler
Language English
Category Utility
Content
This is a test message.

Name new_sms
Language English
Category Utility
Content
New SMS message from '{{1}}' via '{{2}}' device.

View all the details at {{3}}πŸ”—.
Sample {{1}} +123 123 1234
Sample {{2}} Example name
Sample {{3}} https://YOUR_DOMAIN_HERE/sms/1

Hosting & Domains

These are my recommendations based on past experiences with hosting or domain platforms.

I currently use Hetzner to host all my websites and Namecheap for all my domain names.

VPS Hosting

(Intermediate, Advanced)

For quick & easy VPS server management without complications:

If you're comfortable managing your VPS and don't need managed cloud hosting:

Shared Hosting

(Beginner)

For beginners with limited knowledge, a shared web hosting plan is recommended:

Domains

NameCheap for domain registration, they offer good prices and a simple interface without headaches. I've used them since I've started AltumCode.

Frequently asked questions

 

Any static text from the website can be changed from the Admin Panel -> Languages -> {language name} -> Translate app page.

It is recommended to create a new language instead of editing the original one, so that it won't get overwritten when updating to a new version.

You also have the advanced option to directly edit the app/languages/english#en.php file for the user app side or the app/languages/admin/english#en.php file for the admin panel side.

That is because your current hosting setup does not allow form submissions with all the existing translation fields.

To fix this, you must increase your max_input_vars PHP ini variable to the value you see mentioned in the Admin Panel -> Languages -> {language name} -> Translate app page.

If you do not have the option or do not know how to increase this value, contact your webhost provider.

You can create a new language pack and start translating from the Admin Panel -> Languages -> Create language -> Translate app page.

You also have the advanced option to directly duplicate the app/languages/english#en.php file for the user app side or the app/languages/admin/english#en.php file for the admin panel side following the same naming concept for the file: language_name#language_code.php.

In the vast majority of cases, this is caused by either one of those cases:

Nginx server - You haven't done the Nginx setup properly or at all.

Apache server
  • You do not have the .htaccess file uploaded.
  • You do not have proper permissions (CHMOD 644) for the .htaccess file.
  • Your web host provider does not have mod_rewrite enabled for Apache.
  • The .htaccess file exists, but the content is not the same as the original file from my product.

  • If you run a server which supports .htaccess, some servers might not accept the first line of the .htaccess file. Try to delete the first line on the .htaccess file.
  • If you get this error when submitting a form, this means that your webhost blocked the request. Try to disable mod_security, as it may trigger a false-positive, or contact your webhost provider.

Spam registrations can not ever be fully prevented. No website can do fully get rid of spam. My products offer a lot of spam protection measures, so you would simply have to use them.

  • Email confirmation - Set from the Admin panel -> Settings -> Users section.
  • Captcha - Set from the Admin panel -> Settings -> Captcha section.
  • Country block - Set from the Admin panel -> Settings -> Users section.
  • Email domain block - Set from the Admin panel -> Settings -> Users section.
  • Auto delete unconfirmed / old users - Set from the Admin panel -> Settings -> Users section.
  • Bulk deletion of users - Set from the Admin panel -> Users page. In case you want to delete a lot of users in bulk.
  • Email shield plugin - Which uses advanced algorithms and multiple blacklists from the web to prevent spam domains sign ups.

Editing the structure & components of the page is done from the themes/altum/views/index/index.php file.

Editing the text is done as mentioned above in the πŸ“ How can I update text on the website? section.

Editing the images is done directly via the Admin panel -> Settings -> Custom images page.

To disable the original landing page in order to redirect to a custom made landing page, you must go in the Admin panel -> Settings page and find the Custom landing page URL field where you can add your new landing page URL.

You are either not sending the Bearer Authentication header properly, or your web host provider is dropping that header before it reaches my product. In such case, you need to contact your web host provider, or you can personally try a quick fix, which might work for some people: https://stackoverflow.com/questions/26549250/apache-strips-down-authorization-header

This can be done in multiple ways, depending on your actual CSS/SCSS knowledge.

  • Easiest way: You can edit the theme colors directly Admin panel -> Settings -> Theme page.
  • You can write your own custom css, that overwrites the already existing rules, and paste that in the Admin panel -> Settings -> Custom CSS field.
  • You can manually replace the colors via the bootstrap CSS files in the themes/altum/assets/css/ folder.
  • You can also fully modify the theme, by editing the bootstrap SCSS files in the themes/altum/assets/css/ folder, recompile them back to CSS, and then overwrite the original CSS bootstrap files (advanced).

Keep in mind: Support for any kind of customizations is not included, so this is fully up to you.

You can do this via the Admin panel -> Resources, Pages section.

That is most likely because you've skipped or misconfigured a step when configuring the payment gateway.

In this case, you'd need to access your database manager (such as phpMyAdmin), select the database of the installed product, go to the users table, find your admin account and set the password to $2y$10$uFNO0pQKEHSFcus1zSFlveiPCB3EvG9ZlES7XKgJFTAl5JbRGFCWy which equals to admin as the password. Now you need to find the uploads/cache/ from the product installation files and delete the folder you see inside.

In this case, you'd need to access your database manager (such as phpMyAdmin), select the database of the installed product, go to the settings table, find the captcha key and modify the value as following:

Find the "login_is_enabled":true part of the text and edit that to "login_is_enabled":false.

Now you need to find the uploads/cache/ from the product installation files and delete the folder you see inside.

No. Those are automatically generated avatars by gravatar.com. If you have an account there, you can change it. This is a global solution for avatars that is highly popular.

You would first need to backup both the files and the database of your current installation. Then you would need to perform the actual migration to another host with the backup up files and database, and after that, you would simply need to edit the config.php file and make sure all the details inside are still correct.