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) number

  • for String value type it is a string array containing two integer values: min accepted length and max accepted length

  • for Enumeration and Multi-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

Movement Authorities

Key

Meaning

ma-bl-filter-promotions

List divided by comma of the numeric IDs for the promotions that can be applied to the movement authority

ma-bl-filter-tariffs

List divided by comma of the numeric IDs for the tariffs that can be applied to the movement authority

ma-vehicle-distance-metres

Total distance for the movement authority

ma-vehicle-license-plate

License plate of the vehicle assigned to the movement authority

ma-vehicle-sticker

Sticker of the vehicle assigned to the movement authority

ma-vehicle-vin

VIN of the vehicle assigned to the movement authority

ma-vehicle-category-guid

Category guid of the vehicle assigned to the movement authority

ma-vehicle-category-labels

Localized category string of the vehicle assigned to the movement authority

ma-vehicle-device-address

Hardware address of the device installed on the vehicle assigned to the movement authority

ma-vehicle-device-driver

Driver guid of the device installed on the vehicle assigned to the movement authority

ma-vehicle-device-secret

Bluethooth secret for the device installed on the vehicle assigned to the movement authority

ma-vehicle-device-serial

Serial number of the device installed on the vehicle assigned to the movement authority

ma-vehicle-filter-categories

Category ID used to filter a vehicle to assign to the movement authority (there may be multiple)

ma-vehicle-filter-groups

Vehicle group IDs used to filter a vehicle to assign to the movement authority (there may be multiple)

ma-vehicle-manufacturer

Manufacturer of the vehicle assigned to the movement authority

ma-vehicle-model

Model of the vehicle assigned to the movement authority

ma-user-guid

Guid of the user for which the movement authority is made

Since a vehicle might have more than one device installed, the device data have a zero-based index suffix(i.e. ma-vehicle-device-serial-0)

Movement Authority Filters

Key

Meaning

vg-category

Stringified array of category IDs

vg-start-max-delay

Max delay in minutes to start the trip after the authority’s nominal start (if less than the default one)

vg-end-max-advance

Max advance in minutes to close the trip after the authority’s nominal end

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