To enable FlexCharging to manage charging for your Tesla vehicle, you may need to set up a "Virtual Key." This one-time process grants FlexCharging the necessary permissions to control charging on your behalf. This guide walks you through the steps to create and assign a Virtual Key for your Tesla vehicle.
Key points:
Note : Setting up a phone key may require being physically near your Tesla.
There are three steps for Tesla drivers:
Note that third party app access is not the same as a Tesla virtual key. However, the enable third party app access in the Tesla app will also create a virtual key, if asked by the API calling it (ie, Smartcar). But, the Tesla virtual key and the third party app access can be independently revoked by the user.
![]() |
![]() |
| Click “Connect Devices” – This starts the Smartcar connect workflow | |
![]() |
![]() |
![]() |
|
This navigates to Tesla.com, where you enter in your name and password. This is an Auth2 authentication dialog box. FlexEnergi does not get to see either your user name nor your password. |
After going through the Tesla process, the Smartcar connect workflow resumes: Select all permissions and press Continue. Now a Tesla virtual key must be set up. |
Smartcar will show this in their connect workflow. Click the vehicle you are interested in granting access to. Smartcar will display a QR code to scan: |
![]() |
![]() |
![]() |
| Scanning that QR code on your phone will launch the Tesla app, asking it to grant third party app access to FlexEnergi via Smartcar. This also creates a Tesla virtual key in your car. | ||
![]() |
Now return back to the Smartcar connect workflow. Once you click on Allow Access, that should let Smartcar’s connect workflow finish. That dialog will go away. You may still need to click a Link Devices button in the FlexEnergi customer dashboard. |
There are two things a driver can see to verify this is signed up correctly.
Drivers generally do not need to do this process. FlexEnergi needs to verify this with our own vehicles.
|
The Tesla app shows third party access in a buried way.
|
![]() |
![]() |
This is necessary to send commands to the car, such as start and stop charging.
|
If my users have more than one Tesla on their account, will they need to add the virtual key to all of their vehicles?
Does the user need to be next to vehicle when adding a virtual key?
Why are my users are seeing a location sharing notification on their navigation unit?