Get Started

After installation complete, you can log in into Zal Pro by browsing Your-Server-IP. Default login info is given below.

# Role Username Password Link
1 Super Admin superadmin 123456
2 Admin admin 123456
3 Re-Seller franchise 123456
4 Re-Seller dealer 123456
5 Re-Seller subdealer 123456
6 User username 123456

First Complete Five Easy Steps.

  • Fill Data in Settings

    Fill all the fields of setting page with proper data/info. Check field list description below.

  • Add Your NAS/Router

    Add your NAS/Routers properly. Adding NAS/Routers is very important and it will be required/used all over the system. Live graph, user disconnect, etc many things depend on NAS API. At this moment only Mikrotik API supported.

    1. Make sure your NAS/Router credentials are correct
    2. Make sure NAS/Router API is enabled in (Zal & Mikrotik)
    3. Make sure API Port is 8728/8729
    4. Make sure the user group has API permission in Mikrotik
    5. Click on the instant check button to check NAS status

  • Add Bandwidth Policy

    Bandwidth policy is the upload/download limit for the users, for example, 2M upload/5M download (2M/5M). Not only bandwidth speed limit but you can also add many other important radius attributes in the bandwidth policy module. Check below the bandwidth policy module's documentation for details.

  • Add New Pacakges

    Create new packages by bandwidth policies and define the package's base price, admin profit, expiration duration, IP pool name, expired IP pool name, data quota, fup quota, session time, bandwidth allocation time, and much more.

  • Add New Area

    Add your business areas to the system. The area is required for adding new admin/staff/reseller/user, various graphs and user location map, etc.

System Settings

General Settings

Attribute Description
Logo Select and upload logo here.
Favicon Select and upload facicon here.
Company Name Insert company name here.
Company Slogan Insert company slogan here.
Support Phone Insert official mobile number, this number will be used in invoice,sms and many other modules when necessery.
Support Email Insert official email, this email will be used in invoice and many other modules when necessery.
Local Timezone Select your local timezone. You must set timezone correctly otherwise you may find various issue regarding date and time. Also, make sure your router timezone and time match correctly with Zal Pro time.
Addres Insert your official address.
City Insert city name.
Country Insert country name.
Latitude Insert latitude coordinates for maps. Use this format Ex: 23.810331. Use this site to get your coordinates.
Longitude Insert user longitude coordinates for maps. Use this format Ex: 90.412521. Use this site to get your coordinates.
Zip Code Insert zip code.
Copyright Text Insert copyright text for footer area.
Online Page Loading Set online page auto loading time. Don't set too low or too high.
Show Zal Pro Text Set yes if you want to show One Zero Art credit text in footer.

Software Settings

Attribute Description
Billing System Set billing system type here. Pre-paid or post-paid, we will highly recomended to set pre-paid. On pre-paid option users and resellers need to pay first before activation/renew. If user balance or reseller balance less than package fee than users will not activate. Same applies to resellers balance adding. Parent reseller must have enough balance to add/transfer balance to children resellers.
Auto Payment on Activate/Renew Set yes if you want to auto add payment or balance to users during activation/renew. System will auto add payemnt and balance to users as same amount of package price.
Add Remaining Days On Renew System will add remaining package days to new expiration date if user service previous package and renew pacakge is same.
User Auto Renew System will auto renew user if user's balance enough for package fee. System will only renew expired users. System checks and renew expired users in every 30 minutes. So if any user expired he will auto renew within next 30 minutes.
Username Prefix System will prepend a prefix to user's username and that prefix will be the username of that user's salesperson. Example : andy-johndoe, here prefix is Andy and Andy is the dealer of John Doe.
Auto MAC Lock System will automatically add mac address to the user profile and user will not able to login from any other device rather than the same mac address or device. System will auto capture mac address on user first login. You can also enable individual user mac lock from user's profile edit service section.
Resellers Can Delete User Resellers can delete their own users and their sub-resellers users. We will highly recomended to off this option.
Resellers Package Permission Resellers can add their own packages and profit from their own dashboard panel. They can add only those packages which is initialize to them by admin or parent resellers. We will highly recomended not to on this option for resellers, admin should manage all resellers pacakges and profit.
Resellers Can See NAS List Resellers can see all nases from their panel and resellers can add any user to any nas. We will highly recommend to not on this option for resellers, it will may be a security risk to your network. Initialize only one nas to resellers profile and all of his users will be added to that nas only.
Default Connection Type Set default connection type for list, set Accept All to allow all types of connection. Zal Pro has five different types of connection and those are Radius PPPoE, Radius Hotspot, API PPPoE, API Hotspot, API Static.Select and set which is sutiable for you.
Auto Clear Radius Stale Session System will auto clear bad session from radius. It will only works on radius connection. Check Stale Session section below for more details about stale session.
Auto Clear Router Stale Session System will auto clear bad session from router whenever its identify that a user is not online in radius but online in nas. We will highly recomended to not on this option.
Auto Clear Stale Session Time Set auto clear stale session time, recomended time is 10 minutes. NAS should sends accounting data as interim update in every 5 minutes. If nas unable to sends accounting data then Zal Pro will indicates users session as stale session. You must enable accounting data in your nas and also make sure your nas time is correct and match with Zal Pro time.
Allow Connection From Any NAS If you want to allow users to be able to login from any nas within your network then on this option. User can use his credentials to login from differnt nas within your network. If you disable this option then users can only login from his selected nas. Chekc user profile edit section to set specific nas.
Google reCaptcha Zal Pro uses Google ReCaptcha for captcha in login page, it enhances security. If you enable this feature then every login must complete a captcha code before gain access to system. You need to insert Google Captcha key and secret in server info tab. Do Not On This Opiton, If You Don't Have Google reCaptcha Key & Secret.
Live Usage Graph From Live user usage graph data source. Choose router data if you want to see real time usage graph or choose database if you want to see average speed based on last accounting data received from router. Router real time data is not recomended as it could be the reason of your router cpu high. You must enable api in both side for rotuer real time data. Also user nas must match with the nas where he conencted and from where the data will come. If user profile nas does not match wtih his connected rotuer ip then it will not work. Turn off if you don't need user usage graph.
Disconnect User By Choose Radius or API for user disconnecting, Zal Pro will disconnect user based on this option. If you face any issue regarding user disconnection choose another option. This option very important for stale session users disconenction and other disconnection. Za Pro will disconnect each stale users by this option seleced value. If you set api then your api must be work and must be enable in both Zal and Router. If you set Radius then Zal Pro will only disconnect radius users and you must set incoming port in router to 3799. For successful disconnection user nas and user connected nas ip should be same.
User Can See Volume Info User can see their usage and total volume in their panel.
User Self Registration User can self register on login page if you set this option on. If any user register on himself, admin need to manually active, add payment/balance and set packages to that user. User can't auto activate/renew or auto connect to internet.

SMS & Email Settings

Attribute Description
SMS Status Set sms status to on/off.
SMS Gateway Select your sms gateway from gateway list. If you do not found any sms gateway which is fit for you in the list then select "Any SMS API" from list. "Any SMS API" will work with any sms gateway if your sms gateway accept HTTP request. Zal Pro will send sms request over HTTP request, talk to your sms gateway provider for more info.
Local SMS URL First, you need to get your sms gateway HTTP URL from your sms gateway provider. Ask your sms gateway provider for HTTP GET request URL. Example :{phone}&from=your-company&message={message}. You need to insert your sms url here.
Local SMS User/API Insert your SMS Username/API Key here. If you select "Any SMS API" then you don't need to insert anything here, just leave # here.
Local SMS Pass/Secret Insert your SMS Password/API Key secret here. If you select "Any SMS API" then you don't need to insert anything here, just leave # here.
Local SMS Mask Insert your SMS MASk here. If you select "Any SMS API" then you don't need to insert anything here, just leave # here.

You need to get your sms http request url and credentials from sms gateway provider. Below we provided a sample of sms gateway http url as how to set it. Follow the below example where to change or how to make it dynamic.{phone}&from=your-mask&message={message}

You need to change two attributes in your sms url 2.message/text. As Zal Pro use some algorithom you need to define &to => &to={phone} and &message => &message={message}. All others sms attributes will remain same.

Your sms gateway attributes may not same as our example. Just make sure that you replace sms receiver attribute value to {phone} and message attribute value to {message}

Payment Settings

Zal Pro supports multiple payment gateways to received payment from your clients/users. Your users can pay through their panel, users must login into their panel and add balance at there. Users can pay two ways, directly add balance at their account or pay invoice due bill. To use payment gateways in Zal Pro you need to collect proper information from payment gateway provider and set inside Zal Pro settings payment section. Choose your suitable payment gateway from our multiple payment gateways list.

Others API & Server Settings

Attribute Description
Server IP Insert your linux/ubuntu/zal pro server ip here.
Server Port Insert linux/ubuntu/zal pro port here. Example: 22
Server User Insert linux/ubuntu/zal pro server username/root.
Server Password Insert linux/ubuntu/zal pro server password.
Goggle Captcha Key Insert Google captcha key here if you want to enable captcha in login page. Collect information from Google Captcha.
Goggle Chaptcha Secret Insert Google chaptcha secret here if you want to enable captcha in login page. Collect information from Google Captcha.
Map Access Token (MapBox API) Insert mapbox access token here for map in dashboard. Check below Map section for more info.
Memory Limit Insert your php memory limit here. Do not edit this option if you are not familier with this option. Minimum value should be 256M.


Add New NAS

Attribute Description
NAS IP Insert NAS/Router IP address here without any block. Example :
NAS Name Give a name to your rotuer so that it will be easy to identify later in system.
Redius Secret Insert your radius secret here, it just like a password and you must insert this same secret in your router radius section.
API On/Off You must on api here if you want to see user graph and api user disconnection.
NAS Username Insert your router username here make sure this user has permission on router api.
NAS Password Insert your router password here.

Every time you add a router in Zal Pro it will auto restart radius server. As a result your radius will be down for few seconds. Zal Pro do some internal process to succefully add your router with radius server. So avoid to add/edit/delete router from system during peak hour time. Do not randomly add or edit router info here without any reason, don't test your router here. Only add those router which will be really use in production enviroment. Remember, you must enable api here and on your router. Make sure router is active and api is on by clicking instant nas chekc icon. Your router incoming port should be enable and set it 3799 for CoA request. Radius request and accounting port 1812 and 1813.


Add New Policy

Attribute Description
Group Name Insert a name here for your policy. This name will be used later in many places in system. Example: 100mb_office or 10mb_student
Attribute Select attribute from dropdown list.
Attribute OP Insert attribute OP, most of the time which is :=, if you don't know what to put in there just :=.
Attribute Type Select attribute type, most of the time you need to set Reply, attribute reply means radius will send these attribute and its values to mikrotik and Check means radius will check these attributes and its values before user authentication when mikrotik or nas sends those attributes or values from nas to radius.
Attribute Value Insert value of attribute, radius will sends these value to nas or nas will send these values to radius.

Mikrotik-Rate-Limit Official Example

  • If you want to generate simple queue in Mikrotik then select Mikrotik-Rate-Limit form attribute dropdown list. If you set Mikrotik-Rate-Limit then Zal Pro will reply or sends this attribute to Mikroitk and Mikroitk will set Simple Queue. So it will override all of your queue in Mikroitk. If you do not want to create Simple Queue in Mikroitk then do not set Mikroitk-Rate-Limit, you need to send an empty attribute value as Reply or at least set an attribute in the policy.

  • Zal Pro supports most of the router attributes, follow router official website for radius attributes support, if you can set any attributes properly then Zal Pro will reply or check those attributes during user access request. Default attributes are Mikroitk attributes. Read Mikroitk official page here for Mikroitk attributes


Add New Package

Attribute Description
Bandwidth Policy Select a bandwidth policy from dropdown list, if there is none, create one first in bandwidth policy module.
Package Name Insert a package name here.
Description Write a short note about this package.
Price Insert admin initial package price. Resellers/users package price depends on this price and admin needs to set package price for resellers individually later.
Profit Margin Set a profit margin for your package, whenever a resellser activate/renew a user admin will profit this amount from that user/reseller.
Duration Of Package (Days) Set pacakge duration in days, user will expire after this duration. Example: if you set 30 days then user will expire after 30 days from his activation date.
Pool Insert a pool name here not ip pool or ip block, which will supply IP addresses to this package users. First, you need to create pool in your router. If same pool not found in router then user can not connect to internet. Server will reject user request.
Expire Pool Insert an expire pool name here, not ip pool or not ip block, make sure you created an expired pool in your router. When a user expired he will get ip from this expired pool. You can use this ip block to redirect your users to some payment page as a reminder to users. If you set expire pool here then user will be connected to internet and you must be redirect expired users otherwise expired users will use free internet. If no expire pool found then user request will be rejected.
Data Quota On/Off Enable data quota if you want to control user data volume and bandwidth usage based on data usage. Example : you can set data volume to 300 GB for this package, whenever user consume 300 GB user will auto disconnect and can't login into internet without renew his volume. Also, you can set FUP data volume here. Example : if user consume 100 GB data then he will get a specific bandwidth for remaining 200 GB.
Data Quota Volume (GB) Set how much volume user can consume. Example: 300 GB. This voluem will reset whenever user profile renew. You can also set this limit in user profile from edit service section.
FUP Quota On/Off Enable if you want to control over bandwidth based on user consumed volume.
FUP Quota Volume Limit (GB) Set volume limit in GB, after consumed this amount of data volume user will get special bandwidth.
FUP Quota Bandwidth Limit Set bandwidth limit example: 1M/1M. User will get this bandwidth whenever user consume Quota Volume Limit.
Connection Session Quota Enable connection session quota to control user total session time.
Connection Session Time (Minutes) Set connection session time limit in minutes, user will disconnect or unable to login after cross this limit. Helpful for hotspot users.
Bandwidth Allocation By Time Set bandwidth limit based on hour, you can set upto 12 rules here to control user bandwidth. You need to set time in hourly pattern from 00:00:00 to 23:59:59 in 24 hour format, minutes will not work, it will only work on hour. So you can set 00:00 to 10:00 but not 10:00 to 00:00. Hour to hour should be samller to larger, not larger to samller, set carefully otherwise it will not work. Also you must enable router radius listening port to 3799. User nas must be same as where he connected too, if user profile nas is different from his connected nas ip then it will not work. User bandwidth will return back to normal speed when time is out of range. Make sure your server time is accurate.


Add New Area

Attribute Description
Area Type Select a area type from dropdown.
Area Name Insert area name here.


Add New User

Attribute Description
Name Insert user full name.
Username Insert user username, username is required for panel & internet login. Avoid use of special characters in username, use only letter if possible. Zal Pro prevent login into panel for some special characters in username and its for preventing SQL injection etc.
Password Password for connection & portal access. User will use this password for PPPoE/Hotspot/Portal.
Package Select package from dropdown list, if none there, you need to create one in package module.
Connection Type Select user connection type, Zal Pro has five connection types as Radius PPPoE, Radius Hotspot, API PPPoE, API Hotspot and API Static IP. You must set Accept All in settings to show connection types here. Radius connection types will create user in Zal Pro on the other hand API connection types will create user's secret and other info into your router directly by Router API.
NAS Select a nas for user, live graph, api call etc depends on nas/router ip. All nas should be online and active in Zal Pro.
National ID Insert user national ID number.
Mobile Insert your mobile/phone number with country code, Zal Pro will send SMS to this number. Also, user can use this number to login into their panel.
Phone Insert user phone number.
Email Insert user email address, Zal Pro will send email to this email address. Also, user can use this email to login into their panel.
Address Insert address here, you can be creative here with some special address format. Example: House: A 1/1, Road: 12, Zip: 1000.
City Select user city, its important for graph in dashboard. You may need to create city first in area module.
Area Select user area, its important for graph in dashboard. You may need to create area first in area module.
Sub-Area Select user sub-area, its important for graph in dashboard. You may need to create sub-area first in area module.
Latitude Insert your location latitude coordinates for maps in Zal Pro. Use this format Ex: 23.810331
Longitude Insert your location longitude coordinates for maps in Zal Pro. Use this format Ex: 90.412521
Box/Pop Number Box number, on which box user's cable connected.
Box/Pop Address Box address, on which box user's cable connected and where is the box or tower located.
Uplink Port Switch or Hub uplink port number.
Fiber Code/ID Code number of fiber/main cable, on which user connected.
Fiber Color Fiber cable color, on which user connected.
MC/Switch/ONU Board Number/Name of switch board, on which user connected.
Switch/ONU Port Port of switch board, on which user connected.
Backup Connection Backup connection name or number if has any where user will be connected if necessary.
Electricity Type/Socket User router/swithc/hub power information.
Cable Type User cable type.

Import Users

Attribute Description
Reseller Select a reseller to whom you want to add imported users as their salesperson. Leave blank if you want to add imported users to admin/logged in account.
Select Type Select Zal Pro dropdown.
Upload File Upload Zal Pro CSV file which you filled with your users data. Keep 1000 users in each CSV file for convenience. Make sure you did not changed any column name in Zal Pro CSV file.

First, download this sample csv file as example of data input, download here. Please read below table carefully to insert data into csv file properly. If you want to activate users automatically with an expire date then you need to set expire date and package properly. You must set expire date format like this : 01 Jan 2020 23:59 or 01-01-2020 23:59

Note : Lat & Long use this format : 23.810331 & 90.412521

Attribute Required Description
name Yes Name of the user.
username Yes Username of the user. This value must have to be unique, if username exist then user will not import as new.
password Yes Password for connection & portal access. User will use this password for PPPoE/Hotspot/Portal.
connectiontype Yes User connection type id : 1 (Radius PPPoE), 2 (Radius Hotspot), 3 (API PPPoE), 4 (API Hotspot), 5 (API Static).
nasid Yes NAS ID from Zal Pro network module.
package Yes Package ID from Zal Pro package module. You must set package id to auto activate user.
staticip No If you want to set static ip for user then set it here.
macaddress No If you want to set macaddress for user then set it here. User only able to login from this mac.
expiration Yes You must set expiration date if you want to auto activate user during import. Expiration date should be this format : 01 Jan 2020 23:59. Hint: If you use Excel then check field option to set the date format.
nic Yes User national ID card information.
mobile Yes User moible number. This is the number where system will send SMS notification. You must insert mobile number with country code, otherwise it will failed to receive SMS.
phone Yes User phone number.
email Yes User email address.
address No User address. Try to insert short address in few words, long address will cut in half.
city No Insert city id not city name. Check area module for city id.
area No Insert area id not area name. Check area module for area id.
subarea No Insert subarea id not subarea name. Check area module for subarea id.
lat No Insert user latitude coordinates. This info important for Map in dashboard. Use this format Ex: 23.810331
long No Insert user longitude coordinates. This info important for Map in dashboard. Use this format Ex: 90.412521
boxnumber No Box number, on which box user's cable connected.
boxaddress No Box address, on which box user's cable connected and where is the box or tower located.
uplinkport No Switch or Hub uplink port number.
fibercode No Code number of fiber/main cable, on which user connected.
fibercolor No Fiber/Main cable color, on which user connected.
switchboard No Number/Name of switch board, on which user connected.
backupconnection No Backup connection name or number if has any where user will be connected if necessary.
electricitysocket No How user router/swithc/hub powered.
cabletype No User cable type.
connectionstatus No User connection status ex: 1 enable and 2 disable. User can't connect if connection is disable/2.

Mass Activation/Renew

Attribute Description
Packages Select a new package for currently selected users or select current package for all selected users to renew on their same current package.
Selected Users Select users one by one by clicking checkbox or select currently showing users at once by clicking top checkbox in all users table. You can also insert users id in the user id box in popup modal, separete multiple ids by comma.

Mass activation only works if user has enough balance and others parameters are ok. System will not renew on mass activation if user did not pass system validation on several parameters, on this situation you must enable user manually one by one. If you face any issue to renew users in mass activation then try to renew user individually and try to identify why users are not activating/renewing on mass action. System will not continue to renew below users if any user has any issue in front line, system will show that user id with an error message.

Mass Payment

Attribute Description
Method Mass payment method alwasy will be cash or till ver 3.5.6.
Amount Set amount which will be added to selected users.
Selected Users Select users individually or all at once.

Mass payment will not work if user did not pass for mass payment validation, system will check many parameters such as billing type, reseller balance, user current balance etc. If you face any issue try to add payment individually.

Mass Delete

Attribute Description
Selected Users Not recomended to delete users by mass delete. Do not delete or try to delete online users at any circumstance. Use mass delete only if you want to remove inactive users. Best option to delete users individually.

User Activation/Renew

Attribute Description
Username Username will auto select whenever you click on activation/renew button.
Status Same as username it will auto show user status whenever you click on activation/renew button.
Package Select a new package if you want to change user current package, select or keep as it is if you want to renew same package again.
Expiry Time You can set custom expiry time, user will expire on this time after 30 days or after pacakge duration time.
Add Extra Charge If you want to add extra charge then set some extra charge here with custom charge title. Extra charge will be added in user invoice as reference also it will cut from user balance.

Add Payment/Blance To User

Attribute Description
Payment Method Select a payment method, select others if you need to add a short note.
Amount Insert amount which will be added to user balance, insert negative amount if you want to deduct amount from user's balance. Adding payment to users depends on many parameters such as salesperson balance, billing type etc. Make sure user's salesperson has enough balance to add payment to user.

Service Details Update

Attribute Description
Account Status Make sure user account status is active, otherwise user will not able to login into system neither into internet. Disable user status for panel login ban, sms ban etc.
Connection Type Select user connection type, Zal Pro has five connection types as Radius PPPoE, Radius Hotspot, API PPPoE, API Hotspot and API Static IP. You must set Accept All in settings to show connection types here. Radius connection types will create user in Zal Pro on the other hand API connection types will create user's secret and other info into your router directly by Router API.
Packages Select package from dropdown list, if none there, you need to create one in package module.
Expiry Date Set custom expiry date, select date and time individually. User will expire on this datetime. If you want to make any user expiry free make them 1 year or longer in here. You can't set it empty here as system will auto set an date here based on package or it will deactive user if found without expiry date. So you must set something here, don't leave blank.
NAS Select a nas for user, live graph, api call etc depends on nas/router ip. All nas should be online and active in Zal Pro.
Salesperson Select a salesperson, a salesperson is mandatory, you can't leave it blank. Select reseller or admin as salesperson, staff can't be selected as a salesperson. User accounting depends on salesperson pacakge. If you want to shift users from one salesperson to another you can do here also you can do that from salesperson profile.
SMS Status Set sms status enable or disable. If you disable user will not get any sms.
Auto Mac Lock Set auto mac lock if you want to lock mac address of user. System will auto catch user mac address when user login first time or next time after setting this option. When mac lock enabled user can't login from different mac address.
Mac Address Mac address will be auto set if you enable mac lock or you can set manually. If you use API Static IP then you must set mac address here manually. API static ip only works based on mac address, it will bind this mac address to mikrotik by api.
Static IP You can set static ip here for user for both radius type connection and api type connection. User will get this ip from pool whenever he login into internet. You must set remote address to empty in PPPoE profile inside Mikrotik otherwise it will not work. Make sure not other user using this ip ohterwise Mikrotik can't set same ip to multiple users. Set static ip if you use API static ip, Zal will bind this ip and mac both in Mikrotik.
Total Volumn (GB) If you enable data quota in packages then system will auto insert user volume in GB here from package. You can still modify this volumn data as you need. User will auto disconnect whenever he consumed full volume and unable to login whenever disconnect. User volume usage calculates based on accounting data update from router. This feature will not work in API users.
Used Volumn (GB) System will show how much data user already consumed of his limited data volume. This data calculated from user accounting update. You must send interim update from router to Zal Pro server.
Billing Discount System will provide this amount as discount to users whenever you activate/renew. You can see discount info in user invoice. You need to insert fixed amount here not percentage.

Add User Custom Attributes

Attribute Description
Attribute Name Insert radius attribute name here, don't insert any random name or text here if you don't know exactly what to insert here. Be 100% sure what you are doing and about the attribute which you are going to insert. User may not able to login for the reason of any faulty attribute config.
Attribute OP Most of the time := or ==, read radius or router documentation for more info.
Attribute Value Insert attribute value here, read radius and router documentation for more info.
Type Attribute reply or check, select proper type.


Add New Resellers

Attribute Description
Name Insert reseller name here.
Username Insert reseller username and make sure its unique, try to avoid special characters in username.
Password Insert reseller password here.
National ID Insert national ID here.
Email Insert email address.
Mobile Insert reseller mobile number with country code, reseller will get various sms alert on this mobile number.
Address Insert reseller address.
City Select city from dropdown, add new one first in area module if no one found here.
Area Select area from dropdown, add new one first in area module if no one found here.
Defalut NAS Select nas from dropdown, add nas first in network module, if none found here. Defult nas is mandatory and you must set accurate nas which is belongs to reseller, nas is very important for live graph, api calls etc. Resellers's users will get this nas ip in their profile when reseller will add new user. Resellers can't see any other nas if you set reseller permission in settings page. We will recomended not to allow resellers to view all of your nas list, its because of security concern.

Admin can't create dealer or sub-dealer same as franchise can't create sub-dealer. Only one step upper reseller can create sub-reseller.

Add Payment/Balance To Resellers

Attribute Description
Payment Method Select payment method, default is cash.
Amount Insert amount.

Resellers can't pay to sub-resellers if they don't have enough balance. When reselles add payment to sub-resellers, resellers will got cash from sub-resellers. If you don't got cash from sub-resellers then don't add payment to them otherwise you will face issue in future accounting.

Withdraw Balance

Attribute Description
Withdraw Method Select withdraw method, default is cash.
Amount Insert amount.

Set New Package

Attribute Description
Package Select a package from dropdown list, if you can't see any packages thats mean you already added all packages or your partent resellers did not allow you for some packages.
Price Insert package price for reseller, you can add extra price here at once. Exampmle: package price is 100 of franchise but franchise can set here 150 or more, those extra price will be counted as profit of franchise. When dealer will renew a user, user will pay total 150 + dealer profit.
Profit This is the profit of sub-reseller not partent reseller. If you are franchise then its dealer profit, if you are dealer then its sub-dealer profit. If you leave it or set it 0 then your sub-reseller will not get any profit on sales. Check in settings to allow/disallow resellers to add their own profit and packages.

How Resellers Works?

  • Admin will create new franchise.
  • Admin will add packages to franchsie & set franchise package price with profit.
  • Franchise will buy balance from admin in cash/bank etc.
  • Franchise will create his users and get paid for user balance/payment.
  • Franchise will activate/renew his users, system will substract franchise balance for package price but add profit in balance.
  • Fanchise will recharge his balance if its empty or low.

Same process applied to dealer and sub-dealer.

How To Set Profit For Resellers?

Admin will set package, price & profit for Franchsie. Franchsie will do the same for Dealer & Dealer will repeat same for Sub-Dealer. Franchsie can only set his own packages to Dealer, same to Dealer to Sub-Dealer. A reseller can set a package only one time in his profile.

Zal Pro support custom package price & profit, its means Admin/Franchise/Dealer can set package price and profit differently to per sub-reseller. Example: Franchise can set different price and profit per Dealers individually.

Franchise package price should be bigger than Admin, same goes to Franchise to Dealer and Dealer to Sub-Dealer. Also reseller package profit should be in a range. Setting too much profit is not ideal. So do not set profit more than package price. Setting package profit is very important, every reseller must have profit in package, otherwise he will not get any profit when activate/renew user.

Note: Visit reseller's profile page to set package, price & profit. Admin should not give permission to reseller to set their own package and profit (Check Settings).

How Reseller Profit Distributed?

1. User Payment: If reseller got cash from user then he will entry payment to user account. On entry user payment into user account, reseller balance will be substract same amount as reseller got cash in hand.

Example: Lets say, reseller balance is 10000, user paid cash 1000 for 5MB package. Reseller will entry 1000 payment into user account. So now user current balance is 1000 but reseller balance is 9000 as reseller have cash 1000 in hand, in total reseller has same 10000 but in two place.

2. Activate/Renew User: Activate/Renew user if user balance positive or negative.

Positive Example: Say, user has 1000 in balance. Now if reseller activate/renew user, user balance will be 0 as 5MB package price was 1000. On the other hand reseller will get his profit as user balance was positive. Lets say reseller profit was 250. System will add 250 profit into reseller balance as user had positive balance.

Negative Example: Say, user has 0 or less than 0 in balance. Reseller still can activate/renew user if Admin set post-paid in settings. Now if reseller activate/renew user, user balance will be -1000 as 5MB package price was 1000. On the other hand reseller will not get any profit in his account as user balance was negative. Now lets say reseller profit was 250, so system will not cut 1000 from reseller balance but system will cut only his purchase rate of 5MB package eg: 750. Reseller will get his 250 profit in cash when user pay 1000 in cash to reseller. So here 1000 - 750 = 250 reseller profit in cash. This profit will not add to system.

Note: Keep in mind when reseller activate/renew a user every time system will cut balance from reseller account. So if reseller activate/renew users without payment he will lost his balance. Reseller can't activate/renew any user if his balance is lower than package price. Reseller needs to refill his balance from Admin by cash payment. So reseller will come to Admin again and again to refill balance by cash payment.

Reseller Profit Flow Example

Role Package Price Admin Profit Franchise Profit Dealer Profit Sub-Dealer Profit Total/User Payment
Admin $10.00 +$2.00 $12.00
Franchise $12.00 +$2.00 $14.00
Dealer $14.00 +$2.00 $16.00
Sub-Dealer $16.00 +$2.00 $18.00

Reseller Payment Flow Example

Role Balance Franchise Payment Dealer Payment Sub-Dealer Payment User Payment Net Balance
Franchise $00.00 +$500.00 -$250.00 $250.00
Dealer $250.00 -$125.00 $125.00
Sub-Dealer $125.00 +$100.00 $225.00


Sent Bulk SMS

Select your option to sent bulk sms, you can set sms by numbers, username, pacakges, area etc. You must insert mobile number with country code. To send sms to multiple numbers at once separate numbers by comma.

SMS Alert Status

Attribute Description
Alert Type Zal Pro comes with pre-defined sms alert type. You can not add or delete any type.
Alert Status On/off sms alert.
SMS Template Insert sms template as you like, you can customize the sms text with sms template attributes. Use template attributes for dynamic text/value in sms. Example: if you use {balance} attribute in sms template Zal Pro will auto change {balance} attribute to user actual balance, same for {username}, {company} etc. Keep in mind your sms text should be lower or equal 160 characters.


Add New Ticket

Attribute Description
Title Insert ticket title.
Username Select user who belongs to this ticket.
Admin/Staff/Sales Person Select admin/staff/salesperson for this ticket who you wants to be assigned. Franchise, dealer and sub-dealer can't set staff or salesperson. Only admin can assign people to tickets.
Description Insert ticket desription.


Watch this video tutorial to setup PPPoE easily.


Watch this video tutorial to setup Hotspot easily.

Stale Session

A stale session means a bad session, which is generated when the router suddenly disconnects from the radius server. For example, if the router shuts down unexpectedly or somehow disconnects or unable to send back an interim update to the radius server, for this kind of reason stale session generates. Radius server thinks that user still online because Radius server did not receive any disconnect request from the router, that's why Radius show offline users online. In this situation, Zal Pro will automatically clear the stale sessions, so that both Zal Pro active users and router active users match. You don't need to do anything for the stale session, Zal Pro will do it all itself. You may see that sometimes users are auto disconnecting from the router, its because of the stale sessions. Those users will be auto connect again within a minute. So don't worry about it. If you want you can disable the auto clear stale session from settings.

1. Check both Zal Pro & Router time, both time should match
2. Set interim update 00:03:00 or 00:05:00
3. Set "Stale Session Clear Time" in Zal Pro setting higher than router interim update

Tracking Log

Its very easy to setup tracking log in Zal Pro. All you need is to setup firewall and logging rules in Mikrotik.Follow these screenshot to setup Mikrotik properly. Once your Mikrotik setup is done. You can see tracking logs in Zal Pro Log & Reports module. Please be aware of stroage of your server as Zal Pro stores all tracking data on the same server. Zal Pro will only keep 1 year tracking data and auto remove if its older than 1 year.


Zal Pro uses MapBox as Map, we are using MapBox becuase its free and no need to credit card to enable api. So you need MapBox API token from MapBox. Go to here for MapBox API Key.

Easy Update

Please, Collect Username & Secret From Us Before Update.

Update Zal Pro easily by our update script. Just follow the below commands, run these commands in your server terminal and it will auto update. No need to copy paste files manually or ftp access. It will take average 5 to 10 mins depending on your server internet speed.

1. Do Not Update Zal Pro on Pick Hour Time
2. Make Sure Your Server Has High Speed Internet 
3. It Will Take 5 to 10 Mins Depending on Server Internet Speed
4. Your Users May Disconnect or Unable To Connect During Updates
5. You Must Backup Database & Store Backup To Local Coputer, Before Install Updates
1. Install Zal Pro Update
sudo wget -O 39B8eai && bash 39B8eai && rm 39B8eai;
2. Update Database From Superadmin Panel

Do not forget to update database from superadmin panel. Log into your superadmin and go to Settings->Manage Software->Update Database. Updating database will take few mins, so please be patience.

Easy Backup

Keep backup your data easily. You can easily backup Main DB & Tracking DB by our script. Just follow the below commands, run these commands in your server terminal and it will auto backup. All backup will be stored in /var/zalpro_db_backup folder. You can download or move these backup files later by ftp client.

1. Do Not Backup Database on Pick Hour Time
2. Your Server Can Hang During Backup
3. It Will Take 10 Mins To 5 Hours Based on Size (1 min per GB)
4. Your Users May Disconnect or Unable To Connect
5. Delete Backup Files or Moves To Other Server Before Storage is Full
1. Earlier Clients (If You Bought Zal Pro Before 2019 November)

Full Database

sudo -i;
sudo mkdir -p /var/zalpro_db_backup && chmod -R 775 /var/zalpro_db_backup;
sudo wget -O np0 && bash np0 && rm np0;

Except Radacct & Radpostauth (Without Usage & Login Log)

sudo -i;
sudo mkdir -p /var/zalpro_db_backup && chmod -R 775 /var/zalpro_db_backup;    
sudo wget -O qpr && bash qpr && rm qpr;
2. Recent Clients (If You Bought Zal Pro After 2019 November)

Full Database

sudo -i;
sudo mkdir -p /var/zalpro_db_backup && chmod -R 775 /var/zalpro_db_backup;
sudo wget -O jj5 && bash jj5 && rm jj5;

Except Radacct & Radpostauth (Without Usage & Login Log)

sudo -i;
sudo mkdir -p /var/zalpro_db_backup && chmod -R 775 /var/zalpro_db_backup;
sudo wget -O j7x && bash j7x && rm j7x;
3. For All Tracking DB (Removed)
sudo -i;
sudo mkdir -p /var/zalpro_db_backup && chmod -R 775 /var/zalpro_db_backup;
sudo wget -O 378z4FF && bash 378z4FF && rm 378z4FF;

Free Up Disk Space

sudo -i;
sudo wget -O euo && bash euo && rm euo;
sudo find /var/www/html/application/ci_session -type f -mtime +1 -exec rm -f {} \;

User Not Connecting

1. Check Things In Mikroitk
1. Make Sure Your Server is Up
2. Make Sure Your Mikrotik/NAS is Up
3. Make Sure Ping is Ok From Server To Mikroitk/NAs, Same Mikroitk/NAS To Zal Pro Server
4. If Your Mikrotik Connected Properly, You Can See Logs From Mikroitk In Zal Pro Login Log
5. If You Do Not See Any Log in Login Log Restart Radius From Server Info Page (Top Right Corner in Zal Pro)
6. If You Do Not See Any Log in Login Log Edit NAS and Update Again
7. Make Sure Mikroitk Radius Lisenting Port, Auth Port, Account Port & API Port is (3799, 1812, 1813, 8728) 
8. Make Sure Your Pool Name in Mikrotik and Zal Pro is Same (Check Package in Zal Pro)
9. In Mikrotik PPPoE Profile Set Local Address and Leave Blank Remote Address 
10. Use PAP and Chap only in Mikrotik PPPoE Server
2. Check Things In Zal Pro
1. Make Sure You Added The User in Zal Pro Panel 
2. Make Sure You Activate/Renew The User From All Users Page
3. Make Sure User's Password is Correct or Change Password With Same Password
4. Check User's Profile Radius Attribute Section & Make Sure There are at least 3 attributes (password, pool, expiration)
5. Check Zal Pro Login Log Message (Why its not connecting)
6. Check Mikrotik Log Message

How To Change IP/Domain/Base URL

Zal Pro license bind with IP/domain & a few server info. Your server IP and other server info must be added to the Zal Pro license. You must update your Zal Pro license from according to your server info, otherwise, you will face a license issue. Also, without proper IP/domain config your Zal Pro will not be open successfully. Please follow the below steps to change your current Zal Pro IP/domain.

#1. First Change IP in Server/Linux/Ubuntu

Follow these tutorials to change your server IP if needed in your server/Linux/Ubuntu. Please don't change IP if you are not an expert. You may be lost connectivity to the server.

Tutorial Link 1
Tutorial Link 2

#2. Change/Update Base URL

You need to change the base URL at /var/www/html/application/config/config.php. Run the below command in your server terminal and lookup for the base_url config section and change it with your IP/domain. Remember to put a back-slash at the end of the IP/domain.

sudo vim /var/www/html/application/config/config.php

#3. Change/Update Verify/Settings Page

You need to update the IP/domain in Zal Pro verify page too. Login into your Zal Pro by admin credentials and visit yours-server-IP/verify page, on this page, you must update your IP/domain. If you can't log in or unable to view the verify page contact us.

#4. Change/Update Your License Info at ZalCrm.OneZeroArt.Com

In this step, you need to update your IP/domain in the license panel. Login into your license panel at with your client id and client secret. If you don't have any login info try to reset the password by your email or contact us.

Your new ip/domain in Zal Pro should works fine now, if you followed all steps properly. If its not works as you expected review all steps again. Contact us if necessary.

Cron Jobs

Cron Job is a Linux programme which scheduled tasks or jobs to be excuted in a certain time. In Zal Pro, we are excuting some tasks as well for automation. Example: Auto Clear Stale Sessions, Send SMS, Auto Backup etc. For these reasons you need to make sure that cron job is running in your server/linux/ubuntu properly. To check Cron Job status, run this below command to check if its running properly.

sudo service cron status;

Please make sure that you have these bash scripts in your server inside /var/www/html/. Run this command to check :

cd /var/www/html && ls -lh | grep .sh; 

If you do not have these bash scripts or if these scripts size is "0", then please contact us immediately to properly install these scripts into your server. Without these scripts Zal Pro will not works as expected.;;;;;;

Set Cron Job tasks in your server, to schedule these tasks run this command.

sudo crontab -e;

Now copy below commands or tasks and paste in into your server's cron job's field.

## every day - every mid night
0 0 * * 0 /bin/bash /var/www/html/ >> /var/log/autobackup.log
## every minutes
* * * * * /bin/bash /var/www/html/ >> /var/log/stalesession.log
## auto renew every 30 minutes
*/30 * * * * /bin/bash /var/www/html/ >> /var/log/autorenew.log
## expired user sms notification every 15 minutes
*/15 * * * * /bin/bash /var/www/html/ >> /var/log/expireduser.log
## expiry user sms notification every 45 minutes
*/45 * * * * /bin/bash /var/www/html/ >> /var/log/expiryuser.log

Note: To Exit The Crontab Editor Press Ctrl + X; Then Press Y; To Save and Exit.