TaxiController App / App Special Instructions

You may configure the app with additional instructions.
You can either add those instructions in the Tariff Header, by which they will be valid for all Sub-Tariffs.
Or, you can configure them in the Sub-Tariff Special Instructions.

Instructions apply both both iOS and Android apps, if not otherwise specified

To add an instruction into the 'App Special Instructions' field, use this syntax:
INSTRUCTION = value;
It is important to have a space before and after the '=' and to finish the input with a ';'.
Don't leave trailing blanks in front of the instruction.
You may add a line break between each instruction.

ACCEPTEDDISPATCHNOACTIVITYTIME
Time in minutes, after which app should ask driver if he is still available for receiving trip requests. A value of 0 will not trigger this question.
Default = 15
Alternative Value: {number of minutes}

ADDSHIFTTOLOGOUTSESSION
Should app send Shift & Session data to server at logout?
Default = Y
Alternative Value: N

ALERTNOACTIVITY
When user user is logged in, but there is currently no trip running (idle or with passengers) and no other activity has been selected by the driver, the app will show a warning and make noise after the time specified in this instruction. A value of 0 will not trigger the alarm.
Default = 0
Alternative Value: {number of minutes}

ALLOWROTATION (Android only)
Should app rotate the main view when device rotates?
Default = Y
Alternative Value: N

ALLOWTARIFFSWITCHDURINGTRIP
In some places in the world, like Poland, it is legally allowed that driver may switch to a different tariff during the trip, and that tariff will apply from that moment on, keeping calculations already done on the taximeter. Situations where this is needed can be for example when leaving the city centre and moving into a different area, or when the tariff switches from day to night tariff during the trip. If that is applicable in your case, you can set this instruction in your Tariff Header.
The allowed values for this instruction are:
- N (meaning 'No'): a switch is not allowed - the app will recalculate the entire trip when you change the tariff.
- A (meaning 'Ask'): the app will give driver the options to either recalculate or switch the tariff.
- Y (meaning 'Yes'): a change of tariff will always be a switch and a full recalculation is not possible.
Note that timetable and tariff's polygon need to be set correctly in your Tariff.
Default = Y
Alternative Values = N or A or Y

ASKFORODOMETER
At login and logout, app can ask for car's odometer value to be put in by driver
Default = Y
Alternative Value: N

BEEPATSTARTOFTRIP
When a new trip is started, the app can make a short sound notification
Default = Y
Alternative Value: N

CALENDARNAME (Android only)
Relevant events, like trips (idle or occupied), other activities like shift interruption, get recorded in Google Calendar app (driver needs to grant access when asked). The name of the Google Calendar can be set here.
To create a Calendar, follow these instructions.
You may wish to use a tool like TEAMCAL to have a view on all your driver's calendars.
Default = T-GPS
Alternative Value: {anything you like}

CALIBRATION
As its name suggests, the percentage that will be added to the calculated distance for calibration purposes, be it OBD or GPS. This instruction will have no effect in case the Dispatching functionality is used. Dispatching has its own calibration setup possibility.
Default = 0
Alternative Value: {percentage to add or substract}

CANCELTRIPALLOWED
Trips can be cancelled by doing a long-click on the HIRED button on the bottom right on the main screen. If drivers should not be allowed to cancel a trip this value needs to be set.
Default = Y
Alternative Value: N

CHANGESTARTEDCOLOR
When a trip is started, the button will change color. If that shouldn't happen, you can set this instruction to N.
Default = Y
Alternative Value: N

CHECKTIMEANDTIMEZONEAUTOMATIC (Android only)
Taximeters come with the legal obligation to make sure that time cannot be tampered with by the driver. Otherwise, it would be possible to manually set the time to night for instance, in order to have a higher tariff applied on the trip. With this instruction set, the app will check that time and time zone are automatically set by Android. If that is not the case, an error message will appear and app will exit.
Default = N
Alternative Value: Y

CONFIRMCASH
At end of trip, if you have selected payment method Cash or External Credit Card, app can ask to confirm that you have well received the money.
Default = Y
Alternative Value: N

CONFIRMSTARTOFTRIP
When 'For Hire' in the bottom right corner of the screen is clicked, a new trip starts. App will display a confirmation alert to avoid that a trip gets started unintentionally.
Default = Y
Alternative Value: N

CONTACTEMAILADDRESS
When driver selects 'Contact' in the menu, this is the address to which the mail will be sent. By default it goes to us.

CROSSOVERONRECEIPT
By default, app will print the crossover speed value from the sub-tariff that was used to calculate the fare.
Default = Y
Alternative Value: N

DISABLEASK4REVIEW (Android only)
If you dont want to be asked by the app from time to time if you wish to write a review on Google Play, then set this instruction to Y.
Default = Y
Alternative Value: N

DISABLEFORTAXIMETER
By default, every Sub-Tariff will be used according to his setup by the taximeter in the app. However, you may wish to have Sub-Tariffs that are only to be used for the calculation of the fare within the Dispatching functionality and should be ignored by the taximeter.
Default = N
Alternative Value: Y

DISPATCH
For users having activated our Dispatching functionality, this is the reference to the Dispatching Vehicle Type.
Vehicle Types with this reference will look for a Sub-Tariff with the value entered here. Make sure that there is a 1:1 relationship between Vehicle Type and Sub-Tariff.
This instruction must be set on the Sub-Tariff level.

DISPATCHAUTOMATICOFFLINE
When driver app goes to background, should driver status be automatically set to offline?
Default = N
Alternative Value: Y

DISPLAYINSTRUCTIONS (Android only)
Viewing the standard user instructions can be disabled.
Default = Y
Alternative Value: N

DRIVEREMAILANDTELONRECEIPT
Should driver email address and telephone number be printed on the receipt?
Default = Y
Alternative Value: N

EXPLAINSUBTARIFFCHANGE
At start of trip, app tells driver that he can do a long-click on the Fare amount if he wishes to apply a different Sub-Tariff. Showing this message can be suppressed.
Default = Y
Alternative Value: N

FIXEDPRICE
It is possible to tell the app if driver should be allowed to set a fixed price for a trip. In some places this is common practice, in other places it is forbidden.
Default = Y
Alternative Value: N

FLATRATEMAXIMUMDISCOUNT
The fare shown by the Calculator can be reduced by a percentage discount value. With this instruction, you can limit your driver on how much discount he can give.
Default = 100
Alternative Value: {any integer number between 0 and 100}

FLATRATEMAXIMUMSURCHARGE
The fare shown by the Calculator can be increased by a percentage surcharge value. With this instruction, you can limit your driver on how much increase he can add.
Default = unlimted
Alternative Value: {any integer number}

GEOFENCE-x (Android only)
The app can automatically add a toll to the Fare. You may add as many automatic toll areas ('geofences') as you wish, but they need to be numbered in sequence starting with value 1.
The first parameter is its name.
The 2nd parameter is the latitude.
The 3rd parameter is the longitude.
The 4th parameter is the maximum distance, in number of meters that the car can be away from the latitude/longitude in order to trigger the automatic toll.
The 5th parameter is currently unused.
The 6th parameter is the amount to be added to the Fare.
Example:
GEOFENCE-1 = Al Barsha : 25.1162241 : 55.1921664 : 80 : 0 : 4;

GEOFENCEADDTOLLAUTAMTICALLY (Android only)
Related to instructions "GEOFENCE-". Will be used in cases when an automatic toll has been detected during a trip. If set, app will add an Extra to the Fare with the amount from the detected toll area.
When set to N, the detected toll will not be added to the Fare.
Default = Y
Alternative Value: N

GEOFENCEADDTOLLDISMISS (Android only)
When an automatic toll has been detected, app will alert driver with a popup message. That message will automatically disappear after the number of seconds set with this instruction.
Default = 10
Alternative Value: {any other value}

GOVTAX
In places where a Government Tax should be added automatically to the Fare (like 1 AUD in Adelaide), you can set with this instruction the reference to the Extra that should be used for it.
Example:
GOVTAX = Government Tax;
In your Extra 'Government Tax' you will then set the amount that should be added.

GOOGLEAPI
When using our Calculator function, you may choose Google APIs or HERE for finding points of interests, calculating the route and subsequently having the price for your trip.
As the costs for Google are extremely high, 1000 directions calculations cost USD 5.00, we have limited the number of requests that may be done. For details about Google prices click: here.
You may have noticed that more often than not, the search for a point of interest is not successful because of this. For this reason, you may now use your own Google API key so that you can make sure to have a working Google APIs at all times.
To create a Google API key, here's how to do that
GOOGLEAPI = your_key;

GPSACCURACY
For best calculation accuracy, it is recommended to set the lowest possible value for accepting GPS signals. However, with changing weather conditions or specific geographical situations, it might be useful to set this value higher. Driver can set this value in app's Preferences, but it can also be set permanently here in the special instructions.
Default = 30
Alternative Value: {any other value}

HALTMETERATENDOFTRIP
In some places in the world, it is required that the taximeter stops increasing the fare when the driver hits the end of trip button. If this is the case in your place, simply set this instruction and app will automatically hat the fare calculation.
Default = N
Alternative Value: Y

HALTMETERATENDOFTRIP
In some places in the world, it is required that the taximeter stops increasing the fare when the driver hits the end of trip button. If this is the case in your place, simply set this instruction and app will automatically hat the fare calculation.
Default = N
Alternative Value: Y

HEREACCESSKEY
HERESECRETKEY
HERERESTAPI
You may create your own HERE API keys on https://platform.here.com. By doing so, you can avoid having to purchase a HERE credit in the app. If you stay below the free threshold, using HERE might even be totally free of charge to you.

HIDEWAITBUTTON
After a trip has been started, the app will display a button with which the driver can switch to Waiting Mode (not to be confused with the time based calculations when car is stuck in a traffic jam).
Default = N
Alternative Value: Y

IDLEMINMETERS
If IDLETRIPMANAGEMENT is activated, app will automatically detect such a trip after a given number of meters has been driven.
Default = 500
Alternative Value: {number of meters}

IDLETRIPMANAGEMENT
Should idle trips (car moving without a trip being started) be recorded in the app?
Default = N
Alternative Value: Y

IGNORESPEEDLOWERBEFOREIDLEISTRIGGERED
(In km/h). Before the app decides that a new idle trip should be started, it is waiting for a movement signal with a speed at least as high as value specified in this instruction. Ideally you would set this value to 5, which corresponds to maximum walking speed, or a car moving in its waiting line. You can hence avoid recording unwanted idle trips in the system.
Default = 0
Alternative Value: {speed in km/h}

IMPATIENCEWAITINGTHRESHOLD
This is the number of seconds that app will wait after start of trip for a first good GPS signal to arrive, before it will start increasing the Fare with the value specified in NOGPSPERSECONDAMOUNT.
Default: 300
Value: {number of seconds}
Example:
IMPATIENCEWAITINGTHRESHOLD = 10;

IMPATIENCEWAITINGTIMEUPDATE
This instruction only makes sense when NOGPSPERSECONDAMOUNT is different from 0. As soon as the value specified in IMPATIENCEWAITINGTHRESHOLD has passed without a good GPS signal, app will start increasing the fare. But, a Fare amount update in the User Interface each second is disturbing for the passenger. Therefore, you can specify the number of seconds that app collects Fare updates before the increase will become visible in the Fare amount.
Default: 0
Value: {number of seconds}
Example:
IMPATIENCEWAITINGTIMEUPDATE = 10;

IMPATIENCEWAITINGGIFT
When IMPATIENCEWAITINGTHRESHOLD value has been reached and app is ready to increase the Fare with value specified in NOGPSPERSECONDAMOUNT, it is possible to wait another number of seconds ('gift') before calculations will really start. We see this instruction being used in Dubai, but nowhere else, so a value of 0 is most likely fine in your case if you are not located in Dubai.
Default: 0
Value: {number of seconds}
Example:
IMPATIENCEWAITINGGIFT = 10;

LASTIDLETRIPDISTANCETIME
When an idle trip is being recorded, and the car hasn't moved for the number of minutes specified here, an alert will be raised to make the driver aware that he still has an open idle trip. A value of 0 will not trigger this alarm.
Default = 0
Alternative Value: {number of minutes}

MAXCHARGE
In some places, the maximum amount that can be charged for a trip is set by Authorities. If that is the case in your place, then you need to set this instruction.
Value: {maximum amount}
Example:
MAXCHARGE = 1000;

MTCHISTORY (Android only)
This is the folder on your external memory where trip data will be written.
Default = mtchistory
Alternative Value: {anything you like}

MYDRIVERSWAITRUNNING
When on trip, and when tracing is activated for the driver that is currently logged in, app will send the position to server after the number of seconds specified here.
Default = 10
Alternative Value: {number of seconds to wait before sending update}

MYDRIVERSWAITSTOPPED
When not on trip and when tracing is activated for the driver that is currently logged in, app will send the position to server after the number of seconds specified here.
Default = 10
Alternative Value: {number of seconds to wait before sending update}

NOGPSPERSECONDAMOUNT
When a trip is started in a place where there is no GPS signal available (like in a garage parking), it can make sense to have the app start calculating without waiting for a first signal. For example, in Dubai Mall, the taxi rank is 4 levels below ground and it will take quite a while until a signal will be received. The driver would lose money then. By default, the app will use the Waiting Mode Fare setup to increase the fare. But this is not always what you want. Therefore you can change the amount that should be added to the Fare for every second that there is no GPS signal right after start of trip. Take a look at IMPATIENCEWAITINGTHRESHOLD, IMPATIENCEWAITINGTIMEUPDATE and IMPATIENCEWAITINGGIFT as they wok together in a combined mode.
Default = {Waiting Mode per second amount}
Alternative Value: {alternative amount}

OBDMANDATORY (Android only)
Some places require that the meter uses the car's electronics for calculating distance. On Android we support Bluetooth OBD connectors to read the car's data. If your Authorities require OBD, or if it is your Company Policy, you may set this instruction to Y. To note that driver will not be able to start a trip if he doesn't have an OBD connection in this case.
Default = N
Alternative Value: Y

ODOMETERLOGOUTTOLERANCE
At logout, app will have calculated the number of km/miles travelled since last login (IDLETRIPMANAGEMENT must be set to Y) and will show the expected odometer value if ASKFORODOMETER has been set to Y. It will then compare your input to that calculated value and accept it as long, as it is within the percentage tolerance set here. A value of 0 means that any input will be accepted. Logout will be blocked when tolerance value has been reached.
Default = 0
Alternative Value: {percentage value}

ODOMETERLOGOUTTOLERANCEOVERRIDE
When the logout process is blocked because of ODOMETERLOGOUTTOLERANCE instruction, driver can still do a logout by doing a long-click on the Logout button. If you don't want this to happen, you can set this instruction to inhibit this.
Default = Y
Alternative Value: N

PAUSEMINTIME
Driver may start an 'Other Activity', like going into pause, doing a shift interruption,... In some places, the law foresees that a pause can only be recorded as such when it has a minimum duration. If this is the case in your place, then set a value here. A value of 0 means that no minimum applies.
Default = 0
Alternative Value: {minimum number of minutes for a pause}

PRICEACCRUEDCOLOR
The display color of the Fare amount can be changed by supplying the integer value of the color's code. Find out about your color code here
By default color will be green.
Example of changing to red color:
PRICEACCRUEDCOLOR = 16711680;

PRICEEXTRASCOLOR
The display color of the Extras can be changed by supplying the integer value of the color's code. Find out about your color code here
By default color will be red.
Example changing to blue color:
PRICEEXTRASCOLOR = 5862911;

PRINTRECEIPT
Should the app prompt for sharing the receipt at end of trip?
Default = {value set in app Preferences}
Alternative Value: N or Y

PRINTTARIFFDETAILSONRECEIPT
The Fare structure that was applied to calculate it, is by default printed on the receipt. Some of our users don't like this idea and can force the app to hide that information by setting this instruction.
Default = Y
Alternative Value: N

PRINTTARIFFDETAILSONRECEIPTWHENFLAT
When it is necessary to print the full Tariff structure on the receipt, even when a Flat Rate has been agreed, you can set this instruction to Y
Default = N
Alternative Value: Y

RECEIPTMAPCUTOFF (Android only)
Instructs app if the map with the route taken should be removed from the printed receipt.
Default = N
Alternative Value: Y

REMOVEFAREAFTERSECONDS
After a trip has completed, the calculated Fare remains visible on the main view. When this instruction is set, the app will automatically change the Fare amount to the starting charge after the given number of seconds. A value of 0 instructs the app not to change the display.
Default = 0
Alternative Value: {number of seconds to wait}

RESTTIMEFROMFIRST (Android only)
In the History function, per default, the field 'Rest Time' shows the time elapsed since last closing of a Session and the opening of a new Session. If you set this parameter to Y, the report will show all Resting Times in a Shift with the value from the first Session in a new Shift. This is a legal requirement in some places.
Default = N
Alternative Value: Y

SAMEVEHICLEMANDATORY (Android only)
This value will be used when instruction OBDMANDATORY has been set to Y. In that case, at every start of a new trip, the app will check if OBD is still connected to the same car as when driver logged in. When it is a different car, and this instruction is set to Y, a new trip cannot be started.
Default = N
Alternative Value: Y

SENDEMAILSUMMARY
Enter here a valid email address to get a daily summary of all your receipts.

SHOULDALERTUSERREPORT (Android only)
At end of trip, app sends data back to server (if configured accordingly). In the case that such data upload fails, the app can give a warning message.
Default = N
Alternative Value: Y

SHOULDCHECKRPM (Android only)
When using OBD, the app constantly asks for the rotation/minute value to find out if the engine is running or not. But this is not very useful on electrical cars and then this instruction should be set to N
Default = Y
Alternative Value: N

SHOULDSUBSCRIPTIOBESHOWN (Android only)
At every start of trip, the app shows your subscription expiry date. If you don't wish to see this, then set this instruction to N.
Default = Y
Alternative Value: N

SHOWDRAGME (Android only)
When you dont like the draggable pins to be shown on the main view in the map, simply set this instruction to N
Default = Y
Alternative Value: N

SHOWMTRATALLTIMES
On the receipt, the app will show the fare calculated by the taximeter when it diverges from the payable amount. When setting this instruction to Y, the taximeter value will always be printed after the fare.
Default = N
Alternative Value: Y

SHOWBADGPS
After start of trip, app will alert driver about bad GPS signals received. Showing this message can be switched off.
Default = Y
Alternative Value: N

SHOWDEVICEIDONRECEIPT
This instruction lets the app know if you wish to show the Device Id on the passenger receipt. In most places, this information is required by law.
Default = Y
Alternative Value: N

SHOWEXTRASWHENINCLUDED
With a single click on the Fare, app will add Extras to that amount. In that case you may decide if the Extras amount should still be visible or if it should just show the text 'EXTRAS'.
Default = Y
Alternative Value: N

SHOWMINCHARGEIMMEDIATELY
In some places, like Croatia, passengers prefer that a possible minimum fare is displayed right at the start of trip, rather than jumping at end of trip. In other places, this is just the opposite. Your choice. (Operational from April 15, 2022).
Default = N
Alternative Value: Y

SHOWPATIENCEALERT
The handling of Fare calculation when no GPS comes in can be confusing for an unexperienced driver. You can decide not to inform about what the app is doing here.
Default = Y
Alternative Value: N

SHOWTRIPSTATUSINWIDGET (Android only)
In some places, it is a legal requirement that the trip status ('For Hire', 'Hired',...) must be displayed at all times. In other places it is not.
Default = Y
Alternative Value: N

SHOWUSERDESC
The app will display the area name and sub-tariff name right below the Fare amount. When this instruction is set to N, app will only display the sub-tariff.
Default = Y
Alternative Value: N

SORTORDER
When there is more than 1 Sub-Tariff than can be used at start of trip, driver can click on the Tariff name and choose the one he needs for the trip. By setting this instruction, he can tell the app in which order sub-tariffs should be displayed. Value can be between 1 and 99. There is no default value - if not set, display order will be random.

SQUAREACCESSTOKEN
SQUARECLIENTID
Don't change these values manually. The system will add them when requested in the Driver Profile maintenance page. The token will be automatically renewed every month by the system.

STOPFARECALCULATIONAFTER
Drivers sometimes quit the app and leave an open trip running 'forever'. To avoid that the fare will increase endlessly, the app halts calculations after 2 hours. You can change that limit by setting a different number of minutes before taximeter should be halted.
Default = 120
Alternative Value: {number of minutes}
Example:
STOPFARECALCULATIONAFTER = 60;

TARIFFSWITCHMAXDISTANCE
When multiple Tariffs are allowed to be used on a trip, but when there is a legal restriction that this can only be done until a specific distance has been travelled, like 100 meters, you may limit the tariff switch possibility with this instruction.
Default = ∞
Alternative Value: {number of meters}
Example:
TARIFFSWITCHMAXDISTANCE = 100;

TRIPCANCELREASONLENGTH
When driver cancels a trip, he must give a reason why he does so. The length of the text that must be input can be set here.
Default = 4
Alternative Value: {number of characters to type in}

V3CMANDATORY
Must driver use the Dispatching functionality in all cases? When set to N, driver will be able to login using his Taximeter profile instead.
Default = N
Alternative Value: Y

VAT
App automatically calculates the tax amount that is applicable for passenger trips. In the EU and in Switzerland this is called VAT ('Value Added Tax'). The Germans call it MwSt ('Mehrwertsteuer'). In other places you may find GST or other designations. In EU countries and Switzerland, the app determines the VAT fully automatically by enquiring the European Union database. If this automatically established rate is not the one that is applicable for your business, or if you use the app outside of the EU, you may feel the need to set the rate yourself.
Default = {EU database rate, or 0 if not found}
Alternative Values: {your local tax rate}
Example:
VAT = 7.7;

VATFROMDISTANCE
In Germany, the VAT rate can depend on the distance travelled, and wether the destination point is outside of the applicable geofenced tariff area. Germany is an overly bureaucratic country...! So, in order to be compliant with German regulation, we introduced this instruction. It's value has the following format: distance:rate:in-out Examples: >50:7:O This means, if travelled distance is > 50, the MwSt (VAT) will be 7%, but only if the destination location is outside of the applicable area. <4:17:I This means, if travelled distance is < 4, the MwSt (VAT) will be 17%, but only if the destination location is inside of the applicable area.

VATTEXT
You may change the label text that is shown for calculated tax (cf. instruction VAT)
Default = VAT
Alternative Values: {text}
Example:
VATTEXT = GST;

WIDGETTOSHOWPERMANENTLY (Android only)
Normally, the overly widget with the fare is only displayed during a trip and if there are unassigned trip requests. If you wish to have that widget displayed at all times when in background, you can activate it here.
Default = N
Alternative Values: Y