Actualités comptables
Chauffeur VTC : travailleur indépendant ou salarié ?

Chauffeur VTC : travailleur indépendant ou salarié ?

Publiée le mardi 07 février 2023 à 05h45 dans Actu Sociale

Une nouvelle fois, un juge vient de remettre en cause la qualité de travailleur indépendant d’un chauffeur de VTC. Explications.


Un nouveau « faisceau d’indices » pour établir l’existence d’un lien de subordination

Pour rappel, les chauffeurs de VTC sont présumés être des travailleurs indépendants lorsqu’ils collaborent avec une plateforme numérique.

En pratique, c’est un contrat de partenariat qui est signé, assorti de certaines obligations qui peuvent faire référence au règlement général de la plateforme.

Néanmoins, lorsqu’il existe un lien de subordination, c’est-à-dire lorsque la plateforme dirige, contrôle et sanctionne l’activité du chauffeur, la prestation peut être requalifiée en CDI à temps plein et donner droit à des indemnités à celui désormais considéré comme un salarié.

Dans une récente affaire, un chauffeur indépendant signe un partenariat avec une plateforme dédiée au transport de personnes.

Un an plus tard, cette dernière suspend son compte pendant deux semaines à cause d'un taux d'annulation très élevé de ses courses. En retour, le chauffeur sollicite le juge afin que sa relation de travail avec la plateforme soit requalifiée en CDI à temps complet et demande donc à percevoir diverses indemnités.

Pour lui, en effet, plusieurs éléments caractérisent bel et bien l’existence d’un contrat de travail :

  • pouvoir de direction de la plateforme illustré par les conditions générales d’utilisation pour les chauffeurs : itinéraire défini par le logiciel, obligation de prendre un repos quotidien après 10 heures de conduite, préconisation d'attendre au moins 10 minutes qu'un utilisateur se présente sur le lieu convenu, ne pas contacter les utilisateurs ou utiliser leurs données personnelles, ne transporter que l'utilisateur et directement vers la destination convenue sans interruptions ou arrêts non autorisés, s'abstenir d'afficher des noms ou logos sur le véhicule ou s'abstenir de porter un uniforme ou autre tenue vestimentaire à l'effigie ou aux couleurs de la plateforme ;
  • tarif utilisateur fixé au moyen des algorithmes de la plateforme ;
  • pouvoir disciplinaire de la plateforme par la suspension du compte du chauffeur qui ne répond pas à 3 demandes de courses successives.

La plateforme réfute l’interprétation faite par le chauffeur et rappelle qu’il ne s’agit là que d’obligations qui découlent du contrat existant entre un travailleur indépendant et son partenaire.

Selon elle, la suspension du compte s’assimile à une simple rupture des relations contractuelles en raison du non-respect du contrat par le chauffeur…

« Non ! », répond le juge, pour qui l'existence d'un pouvoir de direction, de contrôle de l'exécution de la prestation et de sanction à l'égard du chauffeur est ici suffisamment caractérisé.

Source : Arrêt de la Cour de cassation, chambre sociale, du 25 janvier 2023, n° 21-11273

Chauffeur VTC et plateforme web : une décision de plus ! © Copyright WebLex - 2023

Plan d'accès

Plus d’informations ?

Sotorec

  • Sotorec
    267 bd. du Docteur Charles Barnier
    83000 Toulon
  • 04 94 09 17 02
  • +33494895133

Vous avez des questions ?

loader

Chargement, veuillez patienter…
  • Mémoire utilisée par PHP : 2,94 Mo
  • Pic mémoire allouée par PHP : 4,10 Mo
  • Temps d'execution du script : 0.461 s
  • Lang :
  • Path : actualite-chauffeur-vtc-travailleur-independant-ou-salarie
  • Route : newsItem
  • $okt->page->module : news
  • $okt->page->action : item
ID Query Time
1
SET NAMES utf8mb4
0.00032
2
SELECT u.*, g.*, o.logged, o.csrf_token, o.prev_url FROM
oktopusV1_core_users AS u INNER JOIN
oktopusV1_core_users_groups AS g ON g.group_id=u.group_id
LEFT JOIN oktopusV1_core_users_online AS o ON
o.ident='3.239.11.178' WHERE u.id=1
0.00064
3
UPDATE oktopusV1_core_users_online SET logged=1716949623,
prev_url='https://www.sotorec-experts-comptables.com/actualite-chauffeur-vtc-travailleur-independant-ou-salarie'
WHERE ident='3.239.11.178'
0.00031
4
UPDATE oktopusV1_mod_news SET active = 1
                           WHERE active = 3 AND NOW() >
created_at 
0.00044
5
UPDATE oktopusV1_mod_news SET active = 0
                              WHERE active = 1 AND end_at !=
"0000-00-00 00:00:00" 
                              AND NOW() > end_at 
0.02162
6
SELECT r.*, rl.*, COUNT(p.id) AS num_posts FROM
oktopusV1_mod_news_categories AS r LEFT JOIN
oktopusV1_mod_news_categories_locales AS rl ON
r.id=rl.category_id LEFT JOIN oktopusV1_mod_news AS p ON
r.id=p.category_id WHERE 1 AND rl.language='fr'  GROUP BY
r.id ORDER BY nleft asc 
0.02662
7
SELECT p.id, p.user_id, p.category_id, p.active, p.selected,
p.created_at, p.updated_at, p.end_at, p.images, p.files,
p.tpl, p.visit, pl.language, pl.title, pl.subtitle,
pl.title_tag, pl.title_seo, pl.slug, pl.content,
pl.content_short, pl.meta_description, pl.meta_keywords,
pl.words, u.username, u.lastname, u.firstname, rl.title AS
category_title, rl.slug AS category_slug, r.items_tpl AS
category_items_tpl FROM oktopusV1_mod_news AS p  LEFT OUTER
JOIN oktopusV1_core_users AS u ON u.id=p.user_id  INNER JOIN
oktopusV1_mod_news_locales AS pl ON p.id=pl.post_id AND
pl.language='fr'  LEFT OUTER JOIN
oktopusV1_mod_news_categories AS r ON r.id=p.category_id 
LEFT OUTER JOIN oktopusV1_mod_news_categories_locales AS rl
ON r.id=rl.category_id AND rl.language='fr' WHERE 1  AND
pl.language='fr'  AND
pl.slug='chauffeur-vtc-travailleur-independant-ou-salarie'
ORDER BY p.selected DESC, p.created_at DESC 
0.00161
8
SELECT f.id, f.user_id, f.active, f.token, f.created_at,
f.updated_at, f.tpl, f.config_general, f.config_style,
f.config_date,
                              fl.language, fl.title,
fl.title_tag, fl.title_seo, fl.slug, fl.meta_description,
fl.meta_keywords, fl.beforedate, fl.afterdate FROM
oktopusV1_mod_facebook AS f  INNER JOIN
oktopusV1_mod_facebook_locales AS fl ON f.id=fl.id_facebook
AND fl.language='fr' WHERE 1  AND fl.language='fr' AND
f.active=1 ORDER BY f.created_at DESC 
0.00037
9
SELECT r.*, rl.*, COUNT(p.id) AS num_items FROM
oktopusV1_mod_galleries AS r LEFT JOIN
oktopusV1_mod_galleries_locales AS rl ON r.id=rl.gallery_id
LEFT JOIN oktopusV1_mod_galleries_items AS p ON
r.id=p.gallery_id WHERE 1 AND rl.language='fr' AND
r.active=1  GROUP BY r.id ORDER BY nleft asc 
0.00028
10
SELECT m.*, 
                              ml.language, ml.title,
ml.title_tag, ml.title_seo, ml.slug, ml.meta_description,
ml.meta_keywords, ml.content FROM oktopusV1_mod_map AS m 
LEFT JOIN oktopusV1_mod_map_locales AS ml ON m.id=ml.id_map
AND ml.language='fr' WHERE 1  AND ml.language='fr' AND
m.active=1 ORDER BY m.created_at DESC 
0.00019
11
SELECT p.id, p.user_id, p.category_id, p.active,
p.created_at, p.updated_at, p.images, p.files, p.tpl,
p.position, pl.language, pl.title, pl.subtitle,
pl.title_tag, pl.title_seo, pl.slug, pl.content,
pl.meta_description, pl.meta_keywords, pl.words, rl.title AS
category_title, rl.slug AS category_slug, rl.title_tag AS
category_title_tag, r.items_tpl AS category_items_tpl,
p.recipients_to, p.recipients_cc, p.recipients_bcc,
p.from_to, p.captcha, p.conversion_google, p.from_copy,
pl.subject FROM oktopusV1_mod_pages AS p  INNER JOIN
oktopusV1_mod_pages_locales AS pl ON p.id=pl.page_id AND
pl.language='fr'  LEFT OUTER JOIN
oktopusV1_mod_pages_categories AS r ON r.id=p.category_id 
LEFT OUTER JOIN oktopusV1_mod_pages_categories_locales AS rl
ON r.id=rl.category_id AND rl.language='fr' WHERE 1  AND
pl.language='fr' AND p.active=1 ORDER BY p.created_at DESC 
0.00037
12
UPDATE oktopusV1_mod_news SET visit=visit+1 WHERE id=15243
0.00077
13
SELECT t.active, t.ord, t.id, t.parent_id, t.nleft,
t.nright, t.level, l.title, l.title_tag, l.title_seo,
l.slug, l.content, l.meta_description, l.meta_keywords FROM
oktopusV1_mod_news_categories AS t JOIN
oktopusV1_mod_news_categories_locales AS l ON t.id =
l.category_id AND l.language = "fr" WHERE t.id = 4
0.00019
14
SELECT t.active, t.ord, t.id, t.parent_id, t.nleft,
t.nright, t.level, l.title, l.title_tag, l.title_seo,
l.slug, l.content, l.meta_description, l.meta_keywords FROM
oktopusV1_mod_news_categories AS t JOIN
oktopusV1_mod_news_categories_locales AS l ON t.id =
l.category_id AND l.language = "fr" WHERE nleft <= 4 AND
nright >= 5 ORDER BY level
0.00016
15
 SELECT t.*,
                            DATE_FORMAT(t.date_creation,
'%d/%m/%Y %H:%i:%s') as date_creation_fr,
                            DATE_FORMAT(t.date_modification,
'%d/%m/%Y %H:%i:%s') as date_modification_fr
                       FROM oktopusV1_mod_slideshow_type t
                       WHERE 1 AND CASE 
                                       WHEN t.choix_rubrique
= 1 THEN
                                           t.rubrique LIKE
'%\'/actualite-chauffeur-vtc-travailleur-independant-ou-salarie\'%'
                                       WHEN t.choix_rubrique
= 2 THEN
                                          
                   (  SELECT COUNT(t.id_type) FROM
oktopusV1_mod_slideshow_type t
                      WHERE t.choix_rubrique = 1 AND
t.rubrique LIKE
'%\'/actualite-chauffeur-vtc-travailleur-independant-ou-salarie\'%'
AND t.actif = 1
                   ) = 0
                
                                           AND
                                           t.rubrique NOT
LIKE
'%\'/actualite-chauffeur-vtc-travailleur-independant-ou-salarie\'%'
                                       ELSE     
                                          
                   (  SELECT COUNT(t.id_type) FROM
oktopusV1_mod_slideshow_type t
                      WHERE t.choix_rubrique = 1 AND
t.rubrique LIKE
'%\'/actualite-chauffeur-vtc-travailleur-independant-ou-salarie\'%'
AND t.actif = 1
                   ) = 0
                 
                                   END AND actif = '1' ORDER
BY nom 
0.00077
16
SELECT m.*, 
                              ml.language, ml.title,
ml.title_tag, ml.title_seo, ml.slug, ml.meta_description,
ml.meta_keywords, ml.content FROM oktopusV1_mod_map AS m 
LEFT JOIN oktopusV1_mod_map_locales AS ml ON m.id=ml.id_map
AND ml.language='fr' WHERE 1  AND m.id = 2  AND
ml.language='fr' AND m.active=1 ORDER BY m.created_at DESC 
0.00023
17
SELECT f.id, f.active, f.type, f.category, f.ord, f.html_id,
f.colonne, f.picto, f.options, f.info_personnelle, fl.title,
fl.legend, fl.description, fl.value FROM
oktopusV1_mod_contact_fields f LEFT JOIN
oktopusV1_mod_contact_fields_locales AS fl ON
fl.field_id=f.id AND fl.category=f.category WHERE 1  AND
f.active>0  AND f.category = "insert" AND fl.language='fr'
ORDER BY ord ASC 
0.00023
18
SELECT p.*, pl.*,
                         DATE_FORMAT(p.debut, '%d/%m/%Y') as
debut_fr,
                         DATE_FORMAT(p.fin, '%d/%m/%Y') as
fin_fr,
                         DATE_FORMAT(p.date_creation,
'%d/%m/%Y %H:%i:%s') as date_creation_fr,
                         DATE_FORMAT(p.date_modification,
'%d/%m/%Y %H:%i:%s') as date_modification_fr
                      FROM oktopusV1_mod_home_popup p
                      LEFT JOIN
oktopusV1_mod_home_popup_locales pl ON pl.id_popup =
p.id_popup AND pl.language = 'fr'
                      WHERE 1 AND (
                                        CURDATE() BETWEEN
p.debut AND p.fin
                                        OR (p.debut =
'0000-00-00 00:00:00' AND p.fin = '0000-00-00 00:00:00')
                                    )AND pl.content <> ''
AND (p.rubrique = '' OR p.rubrique LIKE
'%\'/actualite-chauffeur-vtc-travailleur-independant-ou-salarie\'%')
ORDER BY p.rubrique DESC
0.00065
19
SELECT p.*, pl.*,
                         DATE_FORMAT(p.debut, '%d/%m/%Y') as
debut_fr,
                         DATE_FORMAT(p.fin, '%d/%m/%Y') as
fin_fr,
                         DATE_FORMAT(p.date_creation,
'%d/%m/%Y %H:%i:%s') as date_creation_fr,
                         DATE_FORMAT(p.date_modification,
'%d/%m/%Y %H:%i:%s') as date_modification_fr
                      FROM oktopusV1_mod_home_popup p
                      LEFT JOIN
oktopusV1_mod_home_popup_locales pl ON pl.id_popup =
p.id_popup AND pl.language = 'fr'
                      WHERE 1 AND (
                                        CURDATE() BETWEEN
p.debut AND p.fin
                                        OR (p.debut =
'0000-00-00 00:00:00' AND p.fin = '0000-00-00 00:00:00')
                                    )AND pl.content <> ''
AND (p.rubrique = '' OR p.rubrique LIKE
'%\'/actualite-chauffeur-vtc-travailleur-independant-ou-salarie\'%')
ORDER BY p.rubrique DESC
0.00056
# type fichier ligne classe fonction message
# 1  Warning /www/al159/www/oktModules/map/inc/class.map.recordset.php 579 oktDebug errorHandler Trying to access array offset on value of type null

#0 mapRecordset->getEmbedAddress( called at [/oktModules/map/inc/class.map.recordset.php:96]


#1 mapRecordset->getScriptSimple( called at [/oktModules/map/inc/class.map.recordset.php:79]


#2 mapRecordset->getScript( called at [/oktThemes/default/templates/map/insert/r-horizontal/template.php:31]


#3 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#4 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#5 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#6 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateRenderer.php:45]


#7 sfTemplateRenderer->__call( called at [/oktThemes/ra157-s/templates/layout.php:132]


#8 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#9 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#10 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#11 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:117]


#12 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#13 oktTemplating->render( called at [/oktModules/news/inc/class.news.controller.php:459]


#14 newsController->newsItem( called at [/oktInc/classes/router/class.oktRouter.php:317]


#15 oktRouter->callRouteHanlder( called at [/oktopus.php:58]

# 2  Warning /www/al159/www/oktModules/map/inc/class.map.recordset.php 579 oktDebug errorHandler Trying to access array offset on value of type null

#0 mapRecordset->getEmbedAddress( called at [/oktModules/map/inc/class.map.recordset.php:96]


#1 mapRecordset->getScriptSimple( called at [/oktModules/map/inc/class.map.recordset.php:79]


#2 mapRecordset->getScript( called at [/oktThemes/default/templates/map/insert/r-horizontal/template.php:31]


#3 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#4 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#5 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#6 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateRenderer.php:45]


#7 sfTemplateRenderer->__call( called at [/oktThemes/ra157-s/templates/layout.php:132]


#8 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#9 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#10 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#11 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:117]


#12 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#13 oktTemplating->render( called at [/oktModules/news/inc/class.news.controller.php:459]


#14 newsController->newsItem( called at [/oktInc/classes/router/class.oktRouter.php:317]


#15 oktRouter->callRouteHanlder( called at [/oktopus.php:58]