| Loss | 0–1 | Sep 2012 | Netherlands F7, Wierden | Futures | Clay | Netherlands Elroy Middendorp | Russia Victor Baluda Netherlands Yannick Ebbinghaus | 3–6, 2–6 |
| Win | 1–1 | Jun 2014 | Netherlands F2, Alkmaar | Futures | Clay | Netherlands Niels Lootsma | Venezuela Jordi Muñoz Abreu Netherlands Mark Vervoort | 6–0, 3–6, [10–7] |
| Win | 2–1 | Jul 2014 | Netherlands F4, Middelburg | Futures | Clay | Netherlands Niels Lootsma | Netherlands Jelle Sels Netherlands Vincent Van Den Honert | 6–4, 6–2 |
| Loss | 2–2 | Aug 2014 | Denmark F2, Copenhagen | Futures | Clay | Netherlands Niels Lootsma | Sweden Isak Arvidsson Denmark Thomas Kromann | 5–7, 6–7(2–7) |
| Loss | 2–3 | Oct 2014 | France F22, Saint-Dizier | Futures | Hard (i) | Netherlands Niels Lootsma | France Rémi Boutillier France Elie Rousset | 2–6, 6–4, [3–10] |
| Loss | 2–4 | Nov 2014 | Norway F2, Oslo | Futures | Hard (i) | United Kingdom Darren Walsh | Croatia Ivan Sabanov Croatia Matej Sabanov | 6–4, 3–6, [4–10] |
| Loss | 2–5 | Dec 2014 | Qatar F6, Doha | Futures | Hard | United Kingdom Richard Gabb | Poland Adam Chadaj Poland Adam Majchrowicz | 6–7(4–7), 6–4, [4–10] |
| Win | 3–5 | Feb 2015 | Germany F3, Kaarst | Futures | Carpet (i) | Poland Adam Majchrowicz | Netherlands Wesley Koolhof Netherlands Matwé Middelkoop | 6–3, 6–4 |
| Win | 4–5 | Feb 2015 | Germany F4, Nußloch | Futures | Carpet (i) | Poland Adam Majchrowicz | Germany Denis Kapric Germany Lukas Ruepke | 6–4, 3–6, [10–5] |
| Loss | 4–6 | Feb 2015 | Italy F1, Sondrio | Futures | Hard (i) | Netherlands Niels Lootsma | Italy Francesco Borgo Lithuania Laurynas Grigelis | 2–6, 6–3, [7–10] |
| Win | 5–6 | Feb 2015 | Italy F2, Trento | Futures | Carpet (i) | Netherlands Niels Lootsma | Republic of Ireland Sam Barry Croatia Viktor Galović | 7–6(7–2), 6–4 |
| Loss | 5–7 | Jul 2015 | Netherlands F4, Amstelveen | Futures | Clay | Netherlands Niels Lootsma | United States Deiton Baughman Brazil Eduardo Dischinger | 6–2, 2–6, [6–10] |
| Loss | 5–8 | Jul 2015 | Germany F7, Kassel | Futures | Clay | Australia Adam Hubble | Bulgaria Alexandar Lazov Egypt Karim-Mohamed Maamoun | 2–6, 7–5, [8–10] |
| Win | 6–8 | Aug 2015 | Belgium F8, Middelkerke | Futures | Hard | Uruguay Ariel Behar | Belgium Sander Gillé Belgium Joran Vliegen | 6–7(1–7), 6–4, [10–7] |
| Win | 7–8 | Sep 2015 | France F18, Mulhouse | Futures | Hard (i) | Poland Adam Majchrowicz | Germany Moritz Baumann Germany Yannick Hanfmann | Walkover |
| Win | 8–8 | Sep 2015 | France F19, Plaisir | Futures | Hard (i) | Poland Adam Majchrowicz | United States Evan King United States Anderson Reed | 6–4, 6–4 |
| Win | 9–8 | Oct 2015 | France F21, Nevers | Futures | Hard (i) | Netherlands Niels Lootsma | France Jonathan Eysseric France Tom Jomby | 6–4, 7–5 |
| Win | 10–8 | Oct 2015 | France F22, Saint-Dizier | Futures | Hard (i) | Netherlands Niels Lootsma | France Ronan Joncour Portugal Gonçalo Oliveira | 7–5, 7–6(10–8) |
| Win | 11–8 | Nov 2015 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Poland Adam Majchrowicz | Belarus Aliaksandr Bury Sweden Andreas Siljeström | 6–3, 5–7, [10–8] |
| Win | 12–8 | Nov 2015 | Czech Republic F7, Jablonec nad Nisou | Futures | Carpet (i) | Poland Adam Majchrowicz | Belgium Niels Desein Czech Republic Libor Salaba | 6–3, 6–4 |
| Win | 13–8 | May 2016 | Ostrava, Czech Republic | Challenger | Clay | Austria Tristan-Samuel Weissborn | Czech Republic Lukáš Dlouhý Chile Hans Podlipnik-Castillo | 7–6(10–8), 6–7(4–7), [10–5] |
| Loss | 13–9 | May 2016 | Rome, Italy | Challenger | Clay | Austria Tristan-Samuel Weissborn | China Bai Yan China Li Zhe | 3–6, 6–3, [9–11] |
| Win | 14–9 | May 2016 | Heilbronn, Germany | Challenger | Clay | Austria Tristan-Samuel Weissborn | Croatia Nikola Mektić Croatia Antonio Šančić | 6–3, 6–4 |
| Loss | 14–10 | Oct 2016 | Mons, Belgium | Challenger | Hard (i) | Netherlands Wesley Koolhof | Austria Julian Knowle Austria Jürgen Melzer | 6–7(4–7), 6–7(4–7) |
| Win | 15–10 | Oct 2016 | Brest, France | Challenger | Hard (i) | Poland Mateusz Kowalczyk | Switzerland Marco Chiudinelli Italy Luca Vanni | 6–7(2–7), 6–3, [10–5] |
| Win | 16–10 | Sep 2017 | Como, Italy | Challenger | Clay | Croatia Antonio Šančić | Belarus Aliaksandr Bury Germany Kevin Krawietz | 7–6(7–1), 6–2 |
| Win | 17–10 | Oct 2017 | Ortisei, Italy | Challenger | Hard (i) | Croatia Antonio Šančić | Germany Jeremy Jahn Israel Edan Leshem | 6–2, 5–7, [13–11] |
| Win | 18–10 | Oct 2017 | Brest, France (2) | Challenger | Hard (i) | Croatia Antonio Šančić | United Kingdom Scott Clayton India Divij Sharan | 6–4, 7–5 |
| Win | 19–10 | Nov 2017 | Eckental, Germany | Challenger | Carpet (i) | Czech Republic Roman Jebavý | United Kingdom Ken Skupski United Kingdom Neal Skupski | 6–2, 6–4 |
| Loss | 19–11 | Nov 2017 | Bratislava, Slovakia | Challenger | Hard (i) | Czech Republic Antonio Šančić | United Kingdom Ken Skupski United Kingdom Neal Skupski | 7–5, 3–6, [8–10] |
| Win | 20–11 | Nov 2017 | Brescia, Italy | Challenger | Carpet (i) | Belgium Sander Gillé | Switzerland Luca Margaroli Austria Tristan-Samuel Weissborn | 6–2, 6–3 |
| Loss | 20–12 | Nov 2017 | Andria, Italy | Challenger | Carpet (i) | Belgium Sander Gillé | Italy Lorenzo Sonego Italy Andrea Vavassori | 6–3, 3–6, [10–7] |
| Loss | 20–13 | Jan 2018 | Koblenz, Germany | Challenger | Hard (i) | Croatia Antonio Šančić | Monaco Romain Arneodo Austria Tristan-Samuel Weissborn | 7–6(7–4), 5–7, [6–10] |
| Loss | 20–14 | Jan 2018 | Rennes, France | Challenger | Hard (i) | Croatia Antonio Šančić | Belgium Sander Gillé Belgium Joran Vliegen | 3–6, 7–6(7–1), [7–10] |
| Win | 21–14 | Mar 2018 | Saint Brieuc, France | Challenger | Hard (i) | Austria Tristan-Samuel Weissborn | United Kingdom Luke Bambridge United Kingdom Joe Salisbury | 4–6, 6–1, [10–7] |
| Win | 22–14 | May 2018 | Braga, Portugal | Challenger | Clay | Canada Adil Shamasdin | Uruguay Ariel Behar Mexico Miguel Ángel Reyes-Varela | 6–2, 6–1 |
| Win | 23–14 | Jan 2019 | Rennes, France | Challenger | Hard (i) | Austria Tristan-Samuel Weissborn | Netherlands David Pel Croatia Antonio Šančić | 6–4, 6–4 |
| Loss | 23–15 | Mar 2019 | Pau, France | Challenger | Hard (i) | Austria Tristan-Samuel Weissborn | United Kingdom Scott Clayton Canada Adil Shamasdin | 6–7(4–7), 7–5, [8–10] |
| Loss | 23–16 | Apr 2019 | Taipei, Taiwan | Challenger | Hard (i) | Austria Tristan-Samuel Weissborn | India Sriram Balaji Israel Jonathan Erlich | 3–6, 2–6 |
| Win | 24–16 | Apr 2019 | Nanchang, China | Challenger | Clay (i) | Austria Tristan-Samuel Weissborn | Australia Alex Bolt Australia Akira Santillan | 6–2, 6–4 |
| Win | 25–16 | Jul 2019 | Tampere, Finland | Challenger | Hard | Netherlands David Pel | Russia Ivan Nedelko Russia Alexander Zhurbin | 6–0, 6–2 |
| Win | 26–16 | Jul 2019 | Segovia, Spain | Challenger | Hard | Netherlands David Pel | Brazil Orlando Luz Brazil Felipe Meligeni Alves | 6–4, 7–6(7–3) |
| Win | 27–16 | Sep 2019 | Mallorca, Spain | Challenger | Hard | Netherlands David Pel | Poland Karol Drzewiecki Poland Szymon Walków | 7–5, 6–4 |
| Loss | 27–17 | Sep 2019 | Cassis, France | Challenger | Hard | Netherlands David Pel | Sweden André Göransson Netherlands Sem Verbeek | 6–7(6–8), 6–4, [9–11] |
| Loss | 27–18 | Oct 2019 | Mouilleron-le-Captif, France | Challenger | Hard | Netherlands David Pel | United Kingdom Jonny O'Mara United Kingdom Ken Skupski | 1–6, 4–6 |
| Loss | 27–19 | Nov 2019 | Eckental, Germany | Challenger | Hard (i) | Czech Republic Roman Jebavy | United Kingdom Ken Skupski Australia John-Patrick Smith | 6-7(2–7), 4–6 |
| Loss | 27–20 | Nov 2019 | Ortisei, Italy | Challenger | Hard (i) | Netherlands David Pel | Serbia Nikola Cacic Croatia Antonio Sancic | 7-6(7–5), 6-7(3–7), [7-10] |
| Win | 28–20 | Feb 2020 | Koblenz, Germany | Challenger | Hard (i) | Netherlands David Pel | Germany Julian Lenz Germany Yannick Maden | 7–6(7–4), 7–6(7–3) |
| Win | 29–20 | Aug 2020 | Prague, Czech Republic | Challenger | Clay | Netherlands David Pel | Sweden André Göransson Portugal Gonçalo Oliveira | 7–5, 7–6(7–5) |
| Loss | 29–21 | June 2021 | Bratislava, Slovakia | Challenger | Clay | Venezuela Luis David Martínez | Ukraine Denys Molchanov Kazakhstan Aleksandr Nedovyesov | 6-7(5–7), 1–6 |
| Loss | 29–22 | Jan 2022 | Quimper, France | Challenger | Hard (i) | Netherlands David Pel | France Albano Olivetti Spain David Vega Hernández | 6-3, 4–6, [8-10] |
| Loss | 29–23 | Feb 2022 | Turin, Italy | Challenger | Hard (i) | Netherlands David Pel | Belgium Ruben Bemelmans Germany Daniel Masur | 6-3, 3–6, [8-10] |
| Win | 30–23 | Mar 2022 | Saint-Brieuc, France | Challenger | Hard (i) | Netherlands David Pel | France Jonathan Eysseric Netherlands Robin Haase | 6-3, 6–3 |
| Win | 31–23 | May 2022 | Mauthausen, Austria | Challenger | Clay | Netherlands David Pel | Germany Johannes Härteis Lebanon Benjamin Hassan | 6-4, 6–3 |
| Loss | 31–24 | Jun 2022 | Lyon, France | Challenger | Clay | Netherlands David Pel | Monaco Romain Arneodo France Jonathan Eysseric | 5-7, 6–4, [4-10] |
| Win | 32–24 | Oct 2022 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Netherlands David Pel | India Purav Raja India Divij Sharan | 6–7(1–7), 7–6(8–6), [10–6] |
| Win | 33–24 | Jan 2023 | Oeiras, Portugal | Challenger | Hard (i) | Netherlands David Pel | Finland Patrik Niklas-Salminen Netherlands Bart Stevens | 6–3, 7–6(7–3) |
| Loss | 33–25 | May 2023 | Francavilla al Mare, Italy | Challenger | Clay | Greece Petros Tsitsipas | Colombia Nicolás Barrientos Uruguay Ariel Behar | 6–7(1–7), 6–3, [6–10] |
| Loss | 33–26 | Sep 2023 | Istanbul, Turkey | Challenger | Hard | Pakistan Aisam-ul-Haq Qureshi | United Kingdom Luke Johnson Tunisia Skander Mansouri | 6–7(3–7), 3–6 |
| Win | 34–26 | Sep 2023 | Rennes, France | Challenger | Hard | Netherlands David Pel | France Antoine Escoffier India Niki Kaliyanda Poonacha | 6–3, 6–2 |
| Loss | 34–27 | Jan 2024 | Ottignies-Louvain-la-Neuve, Belgium | Challenger | Hard | Netherlands Sem Verbeek | United Kingdom Luke Johnson Tunisia Skander Mansouri | 5–7, 3–6 |
| Win | 35–27 | Feb 2024 | Koblenz, Germany | Challenger | Hard | Netherlands Sem Verbeek | Germany Jakob Schnaitter Germany Mark Wallner | 6–4, 6–2 |
| Loss | 35–28 | Feb 2024 | Tenerife, Spain | Challenger | Hard | Netherlands Sem Verbeek | Czech Republic Petr Nouza Czech Republic Patrik Rikl | 4–6, 6–4, [9–11] |
| Win | 36–28 | Mar 2024 | Tenerife, Spain | Challenger | Hard | Netherlands Sem Verbeek | Italy Marco Bortolotti Spain Sergio Martos Gornes | 6–4, 6–4 |
| Win | 37–28 | Mar 2024 | Lugano, Switzerland | Challenger | Hard (i) | Netherlands Sem Verbeek | Germany Constantin Frantzen Germany Hendrik Jebens | 6–7(11–9), 7–6(1–7), [10–8] |
| Loss | 37–29 | May 2024 | Francavilla al Mare, Italy | Challenger | Clay | Netherlands Matwe Middelkoop | France Théo Arribagé Romania Vlad Victor Cornea | 6–7(1–7), 6–7(7–9) |
| Win | 38–29 | Jul 2024 | Braunschweig, Germany | Challenger | Clay | Netherlands Robin Haase | India Sriram Balaji Ecuador Gonzalo Escobar | 4–6, 6–4, [10–8] |
| Win | 39–29 | Aug 2024 | Porto, Portugal | Challenger | Hard | United Kingdom Luke Johnson | United Kingdom Joshua Paris India Ramkumar Ramanathan | 6-3, 6-2 |
| Win | 40–29 | Sep 2024 | Rennes, France | Challenger | Clay | France Gregoire Jacq | France Antoine Escoffier United Kingdom Joshua Paris | 6–4, 6–2 |
| Win | 41–29 | Sep 2024 | Saint-Tropez, France | Challenger | Hard | United Kingdom Luke Johnson | Sweden André Göransson Netherlands Sem Verbeek | 3–6, 6–3, [10–4] |
| Win | 42–29 | Apr 2025 | Monza, Italy | Challenger | Clay | United Kingdom Luke Johnson | Italy Filippo Romano Italy Jacopo Vasamì | 6–1, 6–1 |