Introduction
Data is exchanged in JSON format (thus serialized as UTF-8 string without BOM), and for simpler
operations that require few parameters, they may be passed as part of the URL path.
JSON exchanges have a content type of application/json
.
Entity ID are to be expected and handled as strings otherwise noted;
time references are expected to be referred to the UTC zone, and be in the ISO-8601
format yyyy-MM-dd'T'HH:mm:ss'Z'
when presented as strings.
Most of the API is protected by JWT-based authentication, and is usually exposed on the same HTTP domain to help with HTTPS certificate issuance.
All of the APIs are available from the standard Movens domain, under a path like this:
/api/[submodule]/v[version]/[action]
for example:
/api/mobile/v1/user/mobile-logon
where
- submodule
It is the name of the submodule that handles the function. It is specified at the top of each API documentation page.
- version
As of now, always “1”. Will allow introducing new API versions while avoiding name collision.
- action
The actual endpoint.
In the documentation pages in this section, URLs are shortened and the /api/submodule
part is
defined only once, at the top of each page.
Positive Response Format
The typical positive response from the API is enclosed in a JSON object like this:
{
Result: "OK",
Data: {
Value: 1
}
}
The Data
field may be omitted if the specific request does not produce any output value.
If present, the Data value may be an object with further details about the output value. Specific
format will be described in the appropriate documentation section.
Negative Response Format
A typical negative response is in an object like this:
{
Result: "ERR",
Message: "err_InvalidParameter"
}
The Message
field may be omitted if there are no specific indications of the error that
has happened. If present, the value is a string slug to be localized by the UI for the user
to understand.
The API designed for the mobile APP adds a third field to the error response:
{
Result: "ERR",
Message: "err_InvalidParameter",
LocalizedMessage: "Some provided parameters are invalid"
}
The LocalizedMessage
field is always provided, even when Message
is omitted.
Paged List APIs
Some APIs are meant to retrieve list of elements to be shown in tabular view. These APIs are set so that they can retrieve and return data in a paged way, to show in the UI only a portion of the data at a time. All these APIs are set in the same way, ad only the specific returned data type differs.
The call to the API expects the following data in the query parameters part of the URL. Below the list of query parameters, with the default values used in the Movens webgui:
draw=0 //An incremented identifier for the call to the same API
length=10 //Lenght of the list chunk returned from the call
start=0 //Page number to be shown, begins at 0
order[0][column]=0 //Index for the order by property
order[0][dir]=asc //Order by direction (asc or desc)
columns[0][name]=ID //Order by property name
search[value]=XXX //Set if a search on the data is needed
Multi-order by is not yet implemented.
The response object from the paged list APIs is like this:
{
Data:[{...}] //Array of the retrieved data
RecordsTotal:130 //Total number of records in DB
RecordsFiltered:45 //Number of records retrieved, differs from RecordsTotal only if search is set
Draw:0 //Identifier for the call, same value as draw query param
SelectedData:[{3,6,14}] //List of data ID, selected via a function defined server-side
Error:"..." //Error from the function, unused
ExtraData:[{...}] //Added data extracted via a function defined server-side
}
General Operation Flow
The User Agent is expected to work on behalf of the end user, but can also operate autonomously to a certain extent (i.e. automatically perform registration steps).
Once the user has been granted access, the User Agent can query the system by submitting a Transportation Request and listening for Movement Authority proposals. Because of the decoupled architecture of the MOVENS platform, the proposals are not time-bound but are reasonably expected to arrive within 10 seconds of the Transportation Request being submitted.
Every Transportation Request is stored and processed for analytics purposes; because of this the User Agent should never attempt to submit Transportation Requests on its own but only after the end user has expressed a need for a transportation, even if only for testing the system.
If no Movement Authority is received after the 15 seconds timeout the User Agent should inform the user that the search parameters did not produce a response, and that he/she should try again. If an error occurs while fetching the Movement Authority stream, the User Agent can just try again.
After a Movement Authority has been chosen by the user and has been successfully confirmed, the User Agent should update its list of reservations from the appropriate API endpoint.
If the reservation is scheduled to start far in the future, the platform does not immediately
assign a vehicle. As soon as the reservation start time approaches (by default, one hour
earlier than the start time), the platform assigns a vehicle to the reservation and adds
a series of Detail
elements with vehicle data, and (if applicable) data to identify and
communicate with onboard devices.
The User Agent is expected to periodically update the reservation list to receive such additional data; ideally the User Agent should update the reservation at least 30 minutes before the scheduled start time, to check if - for any reason - the reservation has been revoked or a vehicle has been assigned.
The User Agent can autonomously initiate a trip, after communicating with external devices by means of data available in the Movement Authority’s details if needed, by deciding (or agreeing with the external device) a trip UUID and generating and storing a trip begin event. Such data will be synchronized with the platform, and any resulting data should be updated and stored locally by the User Agent.
Once the User Agent initiates a trip, it should decrement the Movement Authority’s
RemainingTripCount
value, to hide a reservation from the list if the value reaches
zero.
After a successful trip synchronization with the platform, if the User Agent asks for
the list of Movement Authorities the one that started the trip will have the
RemainingTripCount
decremented.
Reservation Filters
Filters are used while creating a new reservation, to select a vehicle that better complies to the user’s needs. They are defined in the code itself, so it isn’t possible to dynamically create new filters.
The filter object structure has four specific property that explains how the filter have to be used (code-wise) while creating a new reservation:
ValueType
is the type of the filter accepted data. It can assume the values explained in AdditionalValueTypes, and the accepted
values for the filter are:
a number for type
Number
a true/false value for type
Boolean
a plain text for type
String
a single value from a specified set for type
Enumeration
multiple values from a specified set for type
Multi-enumeration
IsRequired
specifies if the value for the filter must be set to be allowed to create a reservation.
ValidValues
can be set only for certain value types, and its value format changes depending on the value type:
for
Number
value type it is a string array containing three integer values: min accepted value, max accepted value and 0/1 to determine if it is an integer (0) or decimal (1) numberfor
String
value type it is a string array containing two integer values: min accepted length and max accepted lengthfor
Enumeration
andMulti-enumeration
value type it is a string array containing the list of the accepted value keys for that enumeration
ValidValueLabels
is used only for Enumeration
and Multi-enumeration
value types. It contains a stringified JSON specifying the localized
translations for each possible accepted value. It is in the form: {“value-key”:{“language code”:”language description”, …}, { … }}
The ValidValues
and ValidValueLabels
fields are automathically calculated by the server, if needed, and it’s not possible to edit their value.
Additional Data Keys
Some entities (i.e. movement authorities) might have additional data. Usually this data has a “key” value that describes its meaning.
Alarm Settings
Key |
Meaning |
---|---|
Localization |
Localized strings for the setting |
Threshold |
Threshold value to trigger the threshold |
ThresholdTriggerDelay |
Delays in seconds after which, if the value is still under threshold, the alarm will be triggered |
Vehicle Group Constraints
Key |
Meaning |
---|---|
Trip Details
Key |
Meaning |
---|---|
bl-coupon |
Code of the coupon applied to the trip |
bl-promotion |
Numeric ID of the promotion applied to the trip |
bl-tariff |
Numeric ID of the tariff applied to the trip |
wk-category |
Category guid of the vehicle assigned to the trip |
wk-res-groups |
List of guids of the vehicle groups of the vehicle assigned to the trip, divided by comma |
wk-vehicle-community |
List of guids of the communities to which both the user and the vehicle assigned to the trip belongs, divided by comma |
wk-user-groups |
List of guids of the user groups of the user, divided by comma |
vs-mileage |
Total running distance of the trip |
vs-last-fuel-level |
Fuel level for the vehicle assigned to the trip |
vs-average-speed |
Average speed of the vehicle during the trip |
vs-actual-running-time |
Total running time of the trip |
vs-actual-parking-time |
Total parking time of the trip |
vs-vehicle-license-plate |
License plate of the vehicle assigned to the trip |
vs-vehicle-manufacturer |
Manufacturer of the vehicle assigned to the trip |
vs-vehicle-model |
Model of the vehicle assigned to the trip |
vs-vehicle-sticker |
Sticker of the vehicle assigned to the trip |
Trip Details
Key |
Meaning |
---|---|
bl-cost |
Total costing of the trip |
bl-cost-details |
Details of the cost (i.e. applied tariff base cost) |
Value Enumerations
AdditionalCostTypes
Value |
Meaning |
---|---|
0 |
Fine |
1 |
Cleanup Fee |
2 |
Damage Costs |
3 |
Other |
AdditionalValueTypes
Value |
Meaning |
---|---|
0 |
Number |
1 |
Boolean |
2 |
String |
3 |
Enumeration |
4 |
Multi-enumeration |
5 |
Date-time |
6 |
Attachment |
AddressType
Value |
Meaning |
---|---|
0 |
Primary Residence Address |
1 |
Living Address |
2 |
Workplace Address |
AttachmentType
Value |
Meaning |
---|---|
0 |
License Document Photo |
1 |
Bulletin Board Document File |
2 |
Additional User Data |
3 |
User Agreements |
DocumentType
Value |
Meaning |
---|---|
0 |
Terms and Conditions |
1 |
FAQ |
LicenseDocumentType
Value |
Meaning |
---|---|
0 |
Road Vehicle Document |
LogActionType
Value |
Meaning |
---|---|
0 |
Add |
1 |
Update |
2 |
Delete |
100 |
End User Logon |
101 |
End User Logoff |
102 |
End User Registration |
103 |
Confirm Registration |
104 |
End User Set Password |
105 |
End User Recover Password |
106 |
End User Reset Password |
107 |
End User Set Email |
108 |
End User Confirm Email Change |
150 |
End User Set as Disabled |
151 |
End User Set as Enabled |
152 |
Requested Forced Password Change For End User |
200 |
Authenticated Session Expiration |
201 |
Authenticated Session Revoked By Operator |
300 |
License Document Validated By Operator (both valid and not valid) |
400 |
Transportation Request Created By Operator |
420 |
Movement Authority Revoked By Operator |
421 |
Movement Authority Extended By Operator |
440 |
Trip Opened By Operator |
441 |
Trip Closed By Operator |
2000 |
Vehicle Plate Changed |
2001 |
Vehicle Set as Operative |
2002 |
Vehicle Set as Not Operative |
2003 |
Vehicle Position Manually Changed |
2004 |
Vehicle Operativity Overridden by Admin |
2005 |
Vehicle Engine Type Changed |
2006 |
Vehicle Additional Data Updated |
2100 |
Operator Executed a Command on OnBoard Device |
2101 |
OnBoard Devices Bound to Vehicle |
2102 |
OnBoard Device Unbound from Vehicle |
2200 |
Zone Boundaries Changed |
3000 |
Changed Alarm Priority |
3001 |
Alarm Acknowledged |
3002 |
Alarm Reassigned to Other Operator |
3003 |
Alarm Marked as Handled |
3500 |
Changed Alarm Setting Value |
4000 |
Trip Payment Execution |
4001 |
Article Purchase |
4002 |
Payment Status Changed |
4003 |
Added Additional Cost to a Trip |
4004 |
Updated Trip Additional Cost, |
4005 |
Changed Payment Amount |
4006 |
Manually Executed a Payment |
4007 |
Transferred Amount from a Wallet to Another |
4008 |
Full Wallet Amount Transferred to Another |
4100 |
Updated Coupon Availability Dates |
4101 |
Updated Coupon or Promotion Effect Dates |
4102 |
Updated Coupon Availability Filters |
4103 |
Changed Tariff Costs |
4104 |
Changed Coupon or Promotion Total Discount |
4105 |
Revoked a Coupon from a User |
4106 |
Reactivated a Coupon for a User |
LogEntityType
Value |
Meaning |
---|---|
0 |
End User |
1 |
Operator |
2 |
Authenticated Session |
3 |
License Document |
4 |
Transportation Request |
5 |
Movement Authority |
6 |
Trip |
7 |
Service Rule |
8 |
User Address |
9 |
User Agreements |
100 |
Vehicle |
101 |
Vehicle Movement Rule |
102 |
Vehicle Availability Rule |
103 |
Zone |
104 |
Vehicle Scheduled Operation |
105 |
OnBoard Device |
200 |
AlarmSettings |
201 |
Alarm |
MessageFormat
Value |
Meaning |
---|---|
0 |
Combined Email |
1 |
Simple Email |
2 |
SMS |
3 |
Push Notification |
MessageType
Value |
Meaning |
---|---|
0 |
Registration Confirm |
1 |
Welcome Message |
2 |
Password Reset |
3 |
Mobile Number Change Confirm |
4 |
E-Mail Address Change Confirm |
100 |
License Document Validation in Progress |
101 |
License Document Marked Valid |
102 |
License Document Marked Not Valid |
500 |
License Document Expiration Approaching |
501 |
License Document Expired |
520 |
Reservation Expired |
521 |
Trip Start Approaching |
522 |
Trip Exceeding Expected Duration |
523 |
Reservation Revoked by Operator |
524 |
Trip Closed by Operator |
550 |
No Vehicle Available for Reservation |
551 |
Vehicle Assigned to Upcoming Reservation Failure |
552 |
Vehicle Assigned to Reservation Changed |
553 |
Vehicle Assignment to Reservation Now Successful |
554 |
Low Vehicle Fuel Level |
555 |
Low Vehicle Battery Level |
600 |
Transaction Failure |
601 |
Transaction Successful |
610 |
Credit Card Expiration Approaching |
NotificationType
Value |
Meaning |
---|---|
102 |
License Document Marked Not Valid |
500 |
License Document Expiration Approaching |
501 |
License Document Expired |
520 |
Reservation Expired |
521 |
Trip Start Approaching |
522 |
Trip Exceeding Expected Duration |
523 |
Reservation Revoked by Operator |
524 |
Trip Closed by Operator |
550 |
No Vehicle Available for Reservation |
551 |
Vehicle Assigned to Upcoming Reservation Failure |
552 |
Vehicle Assigned to Reservation Changed |
553 |
Vehicle Assignment to Reservation Now Successful |
554 |
Low Vehicle Fuel Level |
555 |
Low Vehicle Battery Level |
600 |
Transaction Failure |
601 |
Transaction Successful |
610 |
Credit Card Expiration Approaching |
SystemMessageType
Value |
Meaning |
---|---|
0 |
Registration Confirm |
1 |
Welcome Message |
2 |
Password Reset |
3 |
Mobile Number Change Confirm |
4 |
E-Mail Address Change Confirm |
100 |
License Document Validation in Progress |
101 |
License Document Marked Valid |
TripEventSource
Value |
Meaning |
---|---|
0 |
On-Board Device |
1 |
User Device (User Agent) |
2 |
Administration |
TripEventType
Value |
Meaning |
---|---|
0 |
Pre-Begin (reserved for future uses) |
1 |
Begin |
2 |
Pre-End (reserved for future uses) |
3 |
End |
4 |
Abandon |
5 |
Park Enter |
6 |
Park Exit |
7 |
Switch Usage Mode (reserved for future uses) |
8 |
Vehicle Operation (reserved for future uses) |
9 |
User Feedback |
10 |
Vehicle Feedback |
11 |
Reservation Extension |
TripStatus
Value |
Meaning |
---|---|
0 |
Pre-Begin (reserved for future uses) |
1 |
Running |
2 |
Parked |
3 |
Pre-End (reserved for future uses) |
4 |
Terminated |
5 |
Extended |
AlarmTypes (Vehicle)
Value |
Meaning |
---|---|
500 |
Vehicle Fuel/Traction Battery Level Low |
502 |
Vehicle Service Battery Level Low |
503 |
Vehicle Device Connection Lost |
550 |
Vehicle Set Inoperative by Admin |
551 |
Vehicle Set Inoperative by System |
552 |
Vehicle System Operativity Forced by Admin |
575 |
Vehicle Unused for too long |
576 |
Vehicle Moving Without Trip |
AttachmentTypes (Vehicle)
Value |
Meaning |
---|---|
0 |
Category Image for Damage Report |
BillableTripEventType
Value |
Meaning |
---|---|
0 |
Pre-Begin (reserved for future uses) |
1 |
Begin |
2 |
Pre-End (reserved for future uses) |
3 |
End |
4 |
Abandon |
5 |
Park Enter |
6 |
Park Exit |
7 |
Switch Usage Mode (reserved for future uses) |
8 |
Vehicle Operation (reserved for future uses) |
9 |
User Feedback |
10 |
Vehicle Feedback |
11 |
Reservation Extension |
BillableTripStatus
Value |
Meaning |
---|---|
0 |
Pre-Begin (reserved for future uses) |
1 |
Running |
2 |
Parked |
3 |
Pre-End (reserved for future uses) |
4 |
Terminated |
5 |
Extended |
DamageSeverity
Value |
Meaning |
---|---|
0 |
Minor |
1 |
Moderate |
2 |
Severe |
MovementSchedulableType
Value |
Meaning |
---|---|
0 |
Can be Scheduled |
1 |
Group and Category Reserved |
2 |
Vehicle Reserved |
VehicleNotificationType
Value |
Meaning |
---|---|
550 |
No Vehicle Available |
551 |
Vehicle Failure |
552 |
Vehicle Changed |
PointOfInterestType
Value |
Meaning |
---|---|
0 |
Refuel Point |
1 |
Maintenance Point |
2 |
Public Service |
RuleType
Value |
Meaning |
---|---|
0 |
Allow |
1 |
Deny |
2 |
Vehicle Availability |
ResetType
Value |
Meaning |
---|---|
0 |
Reset Device |
1 |
Reset GPS Module |
TestType
Value |
Meaning |
---|---|
0 |
Door Unlock |
1 |
Door Lock |
2 |
Enable Engine |
3 |
Disable Engine |
4 |
Test Reading |
5 |
Enable Device |
6 |
Disable Device |
VehicleCleaningStatus
Value |
Meaning |
---|---|
1 |
Very Dirty |
2 |
Dirty |
3 |
Medium Clean |
4 |
Clean |
5 |
Very Clean |
VehicleEngineTypes
Value |
Meaning |
---|---|
0 |
Internal Combustion Engine |
1 |
Electric |
2 |
Hybrid |
VehicleScheduleType
Value |
Meaning |
---|---|
0 |
Maintenance |
1 |
Cleaning |
VehicleTripType
Value |
Meaning |
---|---|
0 |
Normal |
1 |
Maintenance |
ZoneType
Value |
Meaning |
---|---|
0 |
Parking |
1 |
OperationArea |
2 |
MaintenancePartition |
AdditionalValueTypes (Alarm)
Value |
Meaning |
---|---|
0 |
Number |
1 |
Boolean |
2 |
String |
AlarmPriority
Value |
Meaning |
---|---|
0 |
Low |
1 |
Medium |
2 |
High |
3 |
Critical |
AlarmTypes (Alarm)
Value |
Meaning |
---|---|
500 |
Vehicle Fuel/Traction Battery Level Low |
502 |
Vehicle Service Battery Level Low |
503 |
Vehicle Device Connection Lost |
550 |
Vehicle Set Inoperative by Admin |
551 |
Vehicle Set Inoperative by System |
552 |
Vehicle System Operativity Forced by Admin |
575 |
Vehicle Unused for too long |
576 |
Vehicle Moving Without Trip |
LogActionType (Alarm)
Value |
Meaning |
---|---|
1 |
Update |
3000 |
Changed Alarm Priority |
3001 |
Alarm Acknowledged |
3002 |
Alarm Reassigned to Other Operator |
3003 |
Alarm Marked as Handled |
ThresholdMeasurementUnits
Value |
Meaning |
---|---|
0 |
Percentage |
10 |
Seconds |
11 |
Minutes |
12 |
Hours |
100 |
Volts |
AttachmentType (Business)
Value |
Meaning |
---|---|
0 |
License Document Photo |
BalanceUnit
Value |
Meaning |
---|---|
0 |
Tokens |
1 |
Minutes |
2 |
Distance |
3 |
Currency |
BusinessNotificationType
Value |
Meaning |
---|---|
600 |
Transaction Failure |
601 |
Transaction Successful |
610 |
Credit Card Expiration Approaching |
MovementType
Value |
Meaning |
---|---|
0 |
Wallet Unit Top-Up |
1 |
Wallet Unit Consume |
2 |
Consume for Trip Payment |
3 |
Top-Up via Article Purchase |
4 |
Unit Transfert from Other Wallet |
5 |
Unit Transfert to Other Wallet |
PriceListEntryType
Value |
Meaning |
---|---|
0 |
Article |
1 |
Tariff |
PaymentMethodTypes
Value |
Meaning |
---|---|
0 |
Cash |
1 |
Wire Transfer |
2 |
Credit Card |
3 |
PayPal |
4 |
AliPay |
5 |
Stripe |
6 |
ComNPay |
7 |
WorldPay |
PaymentStatuses
Value |
Meaning |
---|---|
0 |
To Be Payed |
1 |
Not To Be Payed |
2 |
Pending |
3 |
Failed |
4 |
On Hold By System |
5 |
On Hold By Operator |
6 |
Expired |
7 |
Payed |
PaymentTypes
Value |
Meaning |
---|---|
0 |
Subscription Fee |
1 |
Article Purchase |
2 |
Trip Payment |
3 |
Fine Payment |
4 |
Trip Additional Cost |
TransactionType
Value |
Meaning |
---|---|
0 |
Prepaid Top-Up |
1 |
Receipt Payment |
2 |
Vending |
Device Retrieved Data
Label |
Type |
Possible Values |
---|---|---|
centrallock |
Enumeration |
lock, unlock |
centrallockimmobilizer |
Enumeration |
lock, unlock |
devbatvoltage |
Number |
|
doorlockstatus |
Enumeration |
lock, unlock |
doorstatus |
Enumeration |
closedlocked, closedunlocked, openlocked, openunlocked |
gpsmodulestatus |
Enumeration |
ok, notok, sleeping |
hazardslightstatus |
Enumeration |
on, off |
immobilizer |
Enumeration |
lock, unlock |
rpm |
Number |
|
seatbeltstatus |
Enumeration |
connected, disconnected |
trunklockstatus |
Enumeration |
closedlocked, closedunlocked, openlocked, openunlocked |
trunkstatus |
Enumeration |
lock, unlock |
windowstatus |
Enumeration |
open, closed |
Message Placeholders
Placeholder
Value |
Meaning |
---|---|
%website_base |
Base URL of the web application |
%registration_confirm_path |
Full URL for the registration confirm API (value created by platform) |
%password_reset_url |
Full URL for the password reset form (needs userguid and token query params, if not already specified in the configuration variable) |
%email_update_confirm_url |
Full URL for the email change confirm API (needs token, if not already specified in the configuration variable) |
%mobile_update_confirm_url |
Full URL for the mobile change confirm API (needs token, if not already specified in the configuration variable) |
%username |
Recipient username |
%fullname |
Recipient full name |
%userguid |
Recipient identifier |
%token |
Action token needed for the confirmation APIs |
%expiration_date |
License document expiration date |
%license_number |
License document number |
%ma_start_date |
Reservation expected start date |
%ma_min_start_date |
Min allowed trip start date |
%ma_max_start_date |
Max allowed trip start date |
%ma_start_location_name |
Reservation expected start location |
%ma_end_date |
Reservation expected end date |
%ma_end_location_name |
Reservation expected end location |
%payment_amount |
Paid amount in a payment |
%payment_currency |
Currency used for the payment (ISO 4217 format code) |
%payment_date |
Last payment execution date |
%payment_type |
Payment type (see PaymentTypes ) |
%removed_vehicle_plate |
Vehicle license plate previously assigned to a reservation |
%assigned_vehicle_plate |
Vehicle license plate currently assigned to a reservation |
%trip_start_date |
Trip actual start date |
%trip_start_location_name |
Trip actual start location |
%trip_end_date |
Trip actual end date |
%trip_end_location_name |
Trip actual end location |
Accepted Placeholders
Message type |
Accepted placeholders |
---|---|
Registration Confirm |
%website_base, %registration_confirm_path |
Welcome Message |
%website_base |
Password Reset |
%website_base, %password_reset_url, %userguid, %token |
Mobile Number Change Confirm |
%website_base, %fullname, %username, %mobile_update_confirm_url, %userguid, %token |
E-Mail Address Change Confirm |
%website_base, %fullname, %username, %email_update_confirm_url, %userguid, %token |
License Document Validation in Progress |
%website_base, %%license_number, %expiration_date |
License Document Marked Valid |
%website_base, %%license_number, %expiration_date |
License Document Marked Not Valid |
%website_base, %%license_number, %expiration_date |
License Document Expiration Approaching |
%website_base, %%license_number, %expiration_date |
License Document Expired |
%website_base, %%license_number, %expiration_date |
Reservation Expired |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name |
Trip Start Approaching |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name, %assigned_vehicle_plate |
Trip Exceeding Expected Duration |
%website_base, %trip_start_date, %trip_start_location_name, %trip_end_date, %trip_end_location_name |
Reservation Revoked by Operator |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name |
Trip Closed by Operator |
%website_base, %trip_start_date, %trip_start_location_name, %trip_end_date, %trip_end_location_name |
No Vehicle Available |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name |
Vehicle Failure |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name, %removed_vehicle_plate |
Vehicle Changed |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name, %assigned_vehicle_plate, %removed_vehicle_plate |
Vehicle Assignment Now Successful |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name, %assigned_vehicle_plate |
Low Vehicle Fuel Level |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name, %assigned_vehicle_plate |
Low Vehicle Battery Level |
%website_base, %ma_start_date, %ma_min_start_date, %ma_max_start_date, %ma_start_location_name, %ma_end_date, %ma_end_location_name, %assigned_vehicle_plate |
Transaction Failure |
%website_base, %payment_amount, %payment_date, %payment_type, %payment_currency |
Transaction Successful |
%website_base, %payment_amount, %payment_date, %payment_type, %payment_currency |
Credit Card Expiration Approaching |
%website_base |