| Result | W–L | Date | Tournament | Tier | Surface | Partner | Opponents | Score |
| Win | 1–0 | Apr 2006 | France F6, Grasse | Futures | Clay | Patrice Atias | Kevin Botti
Vincent Sapene | 6–2, 3–6, 7–6(7–5) |
| Win | 2–0 | Jul 2006 | France F10, Bourg-en-Bresse | Futures | Clay | Boris Obama | Antoine Benneteau
Alexandre Renard | 6–2, 6–3 |
| Win | 3–0 | Jul 2006 | France F11, Saint-Gervais | Futures | Clay | Patrice Atias | Luca Bonati
Alessandro da Col | 6–1, 7–6(7–3) |
| Win | 4–0 | Jul 2007 | France F11, Saint-Gervais | Futures | Clay | Adrian Mannarino | Ivan Sergeyev
Leonardo Tavares | 6–1, 6–4 |
| Loss | 4–1 | Sep 2007 | France F14, Plaisir | Futures | Hard (i) | Jérôme Inzerillo | Roman Borvanov
Clément Reix | 7–5, 6–7(5–7), [7–10] |
| Loss | 4–2 | Oct 2007 | Tunisia F4, Sfax | Futures | Hard | Jérôme Inzerillo | Andrea Arnaboldi
Walid Jallali | 4–6, 2–6 |
| Win | 5–2 | Oct 2007 | Tunisia F5, Monastir | Futures | Hard | Jérôme Inzerillo | Tihomir Grozdanov
Simeon Ivanov | 6–4, 6–1 |
| Loss | 5–3 | Jul 2008 | France F10, Montauban | Futures | Clay | Marc Auradou | Julien Jeanpierre
Jean-Baptiste Perlant | 6–7(2–7), 1–6 |
| Win | 6–3 | Aug 2009 | San Sebastián, Spain | Challenger | Clay | Romain Jouan | Pedro Clar-Rosselló
Albert Ramos | 7–5, 6–3 |
| Win | 7–3 | Oct 2009 | USA F26, Mansfield | Futures | Hard | Philip Bester | Brett Joelson
Todd Paul | 6–4, 6–7(3–7), [10–7] |
| Loss | 7–4 | Apr 2010 | Brazil F3, Brasília | Futures | Clay | Daniel Alejandro López | Victor Maynard
Nicolas Santos | 4–6, 4–6 |
| Win | 8–4 | Jun 2010 | France F8, Blois | Futures | Clay | Jérôme Inzerillo | Pierre-Hugues Herbert
Xavier Pujo | 6–3, 6–2 |
| Win | 9–4 | Jun 2010 | France F9, Toulon | Futures | Clay | Philip Bester | Ashwin Kumar
Rupesh Roy | 6–3, 6–4 |
| Win | 10–4 | Jul 2010 | France F10, Montauban | Futures | Clay | Philip Bester | Julien Obry
Albano Olivetti | w/o |
| Loss | 10–5 | Jan 2011 | France F1, Bagnoles-de-l'Orne | Futures | Clay (i) | Romain Jouan | Florian Reynet
Laurent Rochette | 6–7(5–7), 1–6 |
| Win | 11–5 | Jun 2011 | France F9, Toulon | Futures | Clay | Fabrice Martin | Julien Obry
Adrien Puget | 6–3, 7–6(7–2) |
| Loss | 11–6 | Feb 2012 | Brazil F8, Itajaí | Futures | Clay | Fernando Romboli | Leonardo Tavares
Goran Tošić | 6–1, 3–6, [8–10] |
| Win | 12–6 | Apr 2012 | Italy F3, Rome | Futures | Clay | Hans Podlipnik Castillo | Daniel Dutra da Silva
Pedro Sakamoto | 4–6, 6–4, [10–4] |
| Win | 13–6 | Apr 2012 | France F9, Grasse | Futures | Clay | Nicolas Renavand | Julien Obry
Florian Reynet | 6–3, 6–0 |
| Win | 14–6 | Jul 2012 | France F12, Montauban | Futures | Clay | Nicolas Renavand | Pierre-Hugues Herbert
Hugo Nys | 6–7(3–7), 6–4, [11–9] |
| Win | 15–6 | Mar 2013 | France F4, Lille | Futures | Hard (i) | Nicolas Renavand | Lewis Burton
James Cluskey | 6–7(3–7), 7–6(7–5), [10–5] |
| Win | 16–6 | Apr 2013 | France F9, Grasse | Futures | Clay | Nicolas Renavand | Jeremy Jahn
Tim Pütz | 7–6(8–6), 6–4 |
| Win | 17–6 | Jun 2013 | Blois, France | Challenger | Clay | Nicolas Renavand | Ruben Gonzales
Chris Letcher | 6–3, 6–4 |
| Win | 18–6 | Jul 2013 | Timișoara, Romania | Challenger | Clay | Nicolas Renavand | Ilija Vučić
Miljan Zekić | 6–7(6–8), 6–2, [10–7] |
| Win | 19–6 | Feb 2014 | France F3, Feucherolles | Futures | Hard (i) | Nicolas Renavand | Tristan Lamasine
Laurent Lokoli | 7–6(7–5), 6–4 |
| Win | 20–6 | Mar 2014 | France F4, Lille | Futures | Hard (i) | Maxime Authom | Juan-Samuel Arauzo-Martínez
Iván Arenas-Gualda | 6–4, 6–3 |
| Win | 21–6 | May 2014 | France F9, Grasse | Futures | Clay | Benjamin Balleret | Marat Deviatiarov
Pablo Galdón | 7–6(9–7), 7–5 |
| Loss | 21–7 | Nov 2014 | Reunion Island, Reunion | Challenger | Hard | Fabrice Martin | Robin Haase
Mate Pavić | 5–7, 6–4, [7–10] |
| Loss | 21–8 | Mar 2015 | France F4, Lille | Futures | Hard (i) | Constant Lestienne | Yannick Mertens
Boy Westerhof | 4–6, 4–6 |
| Win | 22–8 | Apr 2015 | France F8, Angers | Futures | Clay (i) | Tom Jomby | Sebastian Bader
Tristan-Samuel Weissborn | 6–3, 6–4 |
| Win | 23–8 | Sep 2015 | Nanchang, China, P.R. | Challenger | Hard | Jürgen Zopp | Lee Hsin-han
Amir Weintraub | 6–4, 6–2 |
| Loss | 23–9 | Oct 2015 | France F21, Nevers | Futures | Hard (i) | Tom Jomby | Sander Arends
Niels Lootsma | 4–6, 5–7 |
| Loss | 23–10 | Oct 2015 | France F23, Rodez | Futures | Hard (i) | Tom Jomby | Filip Peliwo
Fabien Reboul | 7–6(7–2), 4–6, [4–10] |
| Loss | 23–11 | Jan 2016 | Rio de Janeiro, Brazil | Challenger | Clay | Miguel Ángel Reyes-Varela | Gastão Elias
André Ghem | 4–6, 6–7(2–7) |
| Loss | 23–12 | Feb 2016 | Santo Domingo, Dominican Republic | Challenger | Clay | Franko Škugor | Ariel Behar
Giovanni Lapentti | 5–7, 4–6 |
| Win | 24–12 | Mar 2016 | France F6, Poitiers | Futures | Hard (i) | Maxime Authom | Scott Griekspoor
Tallon Griekspoor | 4–6, 6–4, [11–9] |
| Win | 25–12 | Apr 2016 | France F8, Angers | Futures | Clay (i) | Maxime Authom | Grégoire Barrère
Adrien Puget | 6–3, 6–0 |
| Loss | 25–13 | Jun 2016 | Lyon, France | Challenger | Clay | Franko Škugor | Grégoire Barrère
Tristan Lamasine | 6–2, 3–6, [6–10] |
| Win | 26–13 | Jul 2016 | France F15, Troyes | Futures | Clay | Fernando Romboli | Vadim Alekseenko
Maxime Mora | 6–4, 6–1 |
| Win | 27–13 | Aug 2016 | Liberec, Czech Republic | Challenger | Clay | André Ghem | Ariel Behar
Dino Marcan | 6–0, 6–4 |
| Win | 28–13 | Aug 2016 | Italy F24, Cornaiano | Futures | Clay | José Hernández-Fernández | Zdeněk Kolář
Bastian Malla | 7–6(7–2), 2–6, [10–4] |
| Win | 29–13 | Aug 2016 | Italy F25, Padova | Futures | Clay | Matteo Viola | Francisco Bahamonde
Marcel Felder | 4–6, 6–1, [10–8] |
| Loss | 29–14 | Sep 2016 | Sibiu, Romania | Challenger | Clay | Tristan Lamasine | Robin Haase
Tim Pütz | 4–6, 2–6 |
| Win | 30–14 | Oct 2016 | Ningbo, China, P.R. | Challenger | Hard | Sergiy Stakhovsky | Stefan Kozlov
Akira Santillan | 6–4, 7–6(7–4) |
| Loss | 30–15 | Oct 2016 | Suzhou, China, P.R. | Challenger | Hard | Andrea Arnaboldi | Mikhail Elgin
Alexander Kudryavtsev | 6–4, 1–6, [7–10] |
| Win | 31–15 | Nov 2016 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Édouard Roger-Vasselin | Johan Brunström
Andreas Siljeström | 6–7(1–7), 7–6(7–3), [11–9] |
| Win | 32–15 | Jan 2017 | Bangkok, Thailand | Challenger | Hard | Grégoire Barrère | Yūichi Sugita
Wu Di | 6–3, 6–2 |
| Loss | 32–16 | Mar 2017 | Spain F8, Reus | Futures | Clay | Germain Gigounon | Sergio Martos Gornés
Cristóbal Saavedra Corvalán | 6–3, 6–7(7–9), [4–10] |
| Win | 33–16 | Jul 2017 | Recanati, Italy | Challenger | Hard | Quentin Halys | Julian Ocleppo
Andrea Vavassori | 6–7(3–7), 6–4, [12–10] |
| Win | 34–16 | Jul 2017 | Perugia, Italy | Challenger | Clay | Salvatore Caruso | Nicolás Kicker
Fabrício Neis | 6–3, 6–3 |
| Win | 35–16 | Sep 2017 | Istanbul, Turkey | Challenger | Hard | Andre Begemann | Romain Arneodo
Hugo Nys | 6–3, 5–7, [10–4] |
| Loss | 35–17 | Oct 2017 | Orléans, France | Challenger | Hard (i) | Tristan Lamasine | Guillermo Durán
Andrés Molteni | 3–6, 7–6(7–4), [11–13] |
| Win | 36–17 | Nov 2017 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Andre Begemann | Tomasz Bednarek
David Pel | 6–3, 6–4 |
| Win | 37–17 | Mar 2018 | Santiago, Chile | Challenger | Clay | Romain Arneodo | Guido Andreozzi
Guillermo Durán | 7–6(7–4), 1–6, [12–10] |
| Loss | 37–18 | Apr 2018 | Le Gosier, Guadeloupe | Challenger | Hard | Ruben Bemelmans | John-Patrick Smith
Neal Skupski | 6–7(3–7), 4–6 |
| Loss | 37–19 | Apr 2018 | Tunis, Tunisia | Challenger | Clay | Joe Salisbury | Denys Molchanov
Igor Zelenay | 6–7(4–7), 2–6 |
| Loss | 37–20 | Mar 2019 | Saint Brieuc, France | Challenger | Hard (i) | Antonio Šančić | Jonathan Erlich
Fabrice Martin | 6–7(2–7), 6–7(2–7) |