Durante la sua carriera si è aggiudicata quattro titoli WTA in singolare ed ha disputato una semifinale a livello Slam all'Open di Francia 2023 e la finale della Rogers Cup 2022. Nel doppio, tra i suoi otto titoli nel circuito maggiore vanta il WTA 1000 di Madrid 2023, oltre ad essersi spinta fino alla finale dell'Australian Open 2022.
I suoi migliori piazzamenti sono il 10º posto in singolare e il 10° in doppio, entrambi raggiunti nel 2023.
In virtù di questi successi, è considerata la seconda tennista brasiliana migliore di sempre, preceduta dall'ex numero uno del mondo Maria Bueno.
Carriera A livello juniores ha vinto 4 titoli in singolare e altrettanti in doppio.
2010-2011 Nel 2010 disputa tre tornei di categoria ITF in Brasile, ma senza andare oltre il primo turno. Un anno più tardi, il 30 ottobre 2011 da numero 942 del ranking mondiale, si aggiudica il primo titolo ITF in carriera a Goiania superando in finale Barbara Luz (n° 594 WTA).
L'8 agosto 2012 arriva anche il secondo trionfo ITF a Ribeirão Preto contro Natasha Fourouclas per 6-0 6-1.
2013-2014: esordio WTA Esordisce nel circuito WTA a marzo del 2013, quando riceve una wild-card dal torneo di Florianopolis: ottiene anche la sua prima vittoria nel main draw (contro la qualificata Hsu Chieh-yu per 6-1 6-2), prima di subire una rimonta da parte della Top 100 Melinda Czink, che si impone per 1-6 6-2 7–6(3). A fine torneo entra per la prima volta tra le migliori cinquecento tenniste del mondo, compiendo un salto dalla 634ª posizione alla 479ª. Successivamente, si aggiudica due titoli ITF a Ribeirão Preto, imponendosi contro la qualificata Andrea Benítez per 7–6(2) 6-2, e ad Antalya liquidando Tereza Martincová per 6-4 6-3. Disputa altre due finali ITF della stagione a Caserta, venendo sconfitta in due parziali da Renata Voráčová, e a Lenzerheide perdendo per mano di Laura Siegemund. Termina il 2013 tra le migliori trecento tenniste del mondo.
Apre il 2014 con due wild-card per il torneo di Rio de Janeiro e Florianopolis; tuttavia viene estromessa all'esordio da Katarzyna Piter (n° 110 WTA) con un doppio 6-3 e da Paula Ormaechea (n° 81 WTA) per 1-6 2-6. Dopo una serie di insuccessi, raggiunge la finale ITF a Breda, dove viene sconfitta da Bernarda Pera. Il 7 dicembre gioca un'altra finale, ma viene rimontata da Patricia Maria Tig con il punteggio di 6-3 3-6 1-6.
2015-2016: primo titolo WTA in doppio
Riceve una wild-card per il torneo di Rio de Janeiro dove supera María Irigoyen, lasciandole appena due games, per poi ottenere la sua prima vittoria contro una tennista Top 100: Polona Hercog per 6-1 6-2. Raggiunge i primi quarti di finale WTA, dove purtroppo è costretta al ritiro nel terzo set dopo non aver sfruttato tre match points nel secondo set contro Sara Errani, numero sedici del mondo. Entrata tra le prime duecento tenniste della classifica, prende parte alle qualificazioni del torneo di Charleston non andando oltre il secondo turno, per mano di Kateryna Bondarenko. Ha fortuna, invece, a Bogotà e supera a fatica il primo turno del main draw eliminando María Herazo González per 6-3 2-6 7–6(2), prima di uscire di scena per mano di Lourdes Domínguez Lino per 6(5)–7 0-6. Si aggiudica il primo titolo in doppio insieme alla connazionale Paula Cristina Gonçalves, riuscendo ad avere la meglio sulla coppia statunitense Shelby Rogers/Irina Falconi. In seguito, viene sconfitta in tre sets da Olivia Rogowska al terzo turno di qualificazione per l'accesso al tabellone principale del Roland Garros. Non ha fortuna nemmeno a Nottingham e a Wimbledon dove cede contro Jarmila Gajdošová e Romina Oprandi.
Nel 2016 disputa il Rio Open con una wild-card, ma viene surclassata da un'altra wild-card Sorana Cîrstea. In seguito, fa il suo esordio nel primo Premier Mandatory della sua carriera, ma non va oltre il primo turno sconfitta per 6(2)–7 1-6 dalla connazionale Teliana Pereira (n° 50 WTA). Si presenta alle qualificazioni del Roland Garros senza successo: sconfitta al secondo turno da Jennifer Brady. Grazie ad una wild-card, partecipa al Brasil Tennis Cup venendo rimontata da Ol'ha Savčuk con il punteggio di 7-5 5-7 0-6 al primo turno. Disputa le qualificazioni per lo Slam newyorkese collezionando una sconfitta al primo turno contro Shūko Aoyama. Il 9 ottobre ritorna in una finale ITF a Santa Margherita di Pula, dove la giocatrice di casa Martina Trevisan le impedisce di sollevare il trofeo. A fine anno si riscatta a Scottsdale e a Waco, poiché si aggiudica due titoli ITF consecutivi con una striscia di 10 vittorie ai danni di Kristie Ahn e Grace Min. A fine anno si ferma per due mesi a causa di un incidente domestico, procurandosi la rottura di tre vertebre.
2017: prima finale WTA in singolare; secondo titolo WTA in doppio Il 2017 rappresenta per Haddad Maia l'anno migliore della sua carriera. Lo inaugura con la vittoria di un titolo ITF a Clare estromettendo Markéta Vondroušová. Ottiene una wild-card per Miami: al primo turno usufruisce del ritiro di Lesja Curenko a metà prima parziale, per poi cedere a Venus Williams (n° 12 WTA) giocando comunque una solida partita. Non si qualifica per il torneo di Monterrey, poiché subisce la vendetta di Kristie Ahn al terzo turno. Ha più fortuna a Bogotà, dove supera a fatica nell'ultimo turno la connazionale Teliana Pereira, ormai crollata in classifica; nonostante ciò, ha vita breve in quanto Verónica Cepede Royg le infligge una sconfitta in rimonta (2-6 6-3 6-4) al primo turno del tabellone principale. Tuttavia, si aggiudica per la seconda volta il titolo in doppio, stavolta con l'argentina Nadia Podoroska, insieme alla quale ha la meglio sulla coppia formata da Verónica Cepede Royg e Magda Linette. Non si qualifica per il torneo di Stoccarda, mentre ci riesce a Praga superando la promessa croata Donna Vekić; in seguito, estromette con facilità Christina McHale (n° 45 WTA) e Samantha Stosur (n° 19 WTA), venendo sconfitta nei quarti di finale da Kristýna Plíšková per 6(5)–7 6-4 6-2. Inoltre, la vittoria su Stosur rappresenta la prima vittoria di una tennista brasiliana su una giocatrice Top 20 dai tempi di Neige Dias, impresa riuscitale agli US Open 1987 contro Susan Sloane al primo turno.
Raggiunge la finale senza cedere un set nel torneo ITF $100.000 di Cagnes-Sur-Mer, imponendosi alla fine con decisione su Jil Teichmann. È costretta a disputare le qualificazioni per il Roland Garros poiché non rientra ancora tra le Top 100, infatti la brasiliana occupa la 101ª posizione della classifica. Con le vittorie su Sílvia Soler Espinosa, Jana Fett e Jil Teichmann, accede al main draw di uno slam per la prima volta; verrà poi sconfitta da Elena Vesnina (n° 15 WTA) per 2-6 6-3 4-6. Disputa il torneo WTA 125k di Bol sbarazzandosi in due sets di Aleksandra Panova, Johanna Larsson e Sara Errani, prima di perdere in semifinale contro Aleksandra Krunić con il punteggio di 6-1 2-6 6-0. A fine torneo sale alle 95ª posizione del ranking.
Superate le qualificazioni a Maiorca, esce al primo turno contro Shelby Rogers, mentre ad Eastbourne non riesce ad accedere al tabellone principale. Sull'erba di Wimbledon supera all'esordio la wild-card Laura Robson per 6-4 6-2, portando a casa la sua prima vittoria in uno slam; viene poi fermata da Simona Halep (n° 2 WTA) per 5-7 3-6. Entrata nella Top 80, si qualifica per il torneo Premier 5 di Cincinnati e si impone su Lauren Davis per 6-3 6-2, cedendo di schianto contro Garbiñe Muguruza (n° 6 WTA), la quale le lascia appena due games.
Mentre non riesce ad accedere al tabellone principale a New Haven, affronta nel primo turno dello US Open Donna Vekić venendo facilmente sconfitta (2-6 1-6). In seguito, disputa la sua prima finale WTA a Seoul grazie alle vittorie su: Katarina Zavac'ka per 4-6 6-3 6-1; Irina-Camelia Begu per 6-3 4-6 6-2; Sara Sorribes Tormo per 6-4 6-4 e Richèl Hogenkamp per 6-1 7–6(7). Tuttavia, il 24 settembre viene sconfitta in rimonta da Jeļena Ostapenko (n° 10 WTA) con il punteggio di 6(5)–7 6-1 6-4. A fine torneo sale alla posizione numero cinquantanove della classifica.
Non si qualifica per il torneo di Pechino, sconfitta da Andrea Petković, ma sale di una posizione in graduatoria: ciò diventerà il suo miglior piazzamento di sempre. Nel torneo di Tianjin si vendica a fatica di Donna Vekić (6(4)–7 6-4 6-2), prima di cedere in tre sets contro Sara Errani. Conclude l'anno con il secondo turno in Lussemburgo, dove viene fermata da Johanna Larsson per 3-6 7–6(5) 2-6, imponendosi su Kirsten Flipkens precedentemente.
2018 Scesa alla 71ª posizione, esce di scena all'esordio ad Auckland contro Agnieszka Radwańska e nel secondo turno a Hobart contro Elise Mertens. Agli Australian Open, dopo la vittoria su Lizette Cabrera, cede contro Karolína Plíšková (n° 6 WTA) che le infligge un severo 1-6 1-6. Nel torneo di Acapulco supera Heather Watson, per poi venire fermata da Kristina Mladenovic (n° 14 WTA).
Sul cemento americano colleziona un primo turno a Indian Wells, perso contro Mónica Puig, e un terzo turno a Miami, perso nuovamente contro Jeļena Ostapenko. In seguito, si ritira a Charleston nel match d'esordio sul punteggio di 6-4 6(6)–7 0-1 in favore a Lara Arruabarrena Vecino, mentre a Praga non riesce a difendere i punti dell'anno precedente uscendo di scena già al primo turno contro Mihaela Buzărnescu. A Madrid, invece, non va oltre le qualificazioni.
Uscita dalla Top 100, ritorna in campo ad agosto, ma senza successo poiché non si qualifica agli US Open. Nel Challenger di Chicago perde subito contro Johanna Larsson. Successivamente, colleziona sconfitte al primo turno, tra cui anche a Québec contro Mónica Puig. Ritorna a vincere e in finale nel torneo ITF a Tyler, dove Whitney Osuigwe le impedisce di sollevare il trofeo. Tuttavia, sale dalla 235ª posizione alla 184ª. Termina la stagione costellata da infortuni con il Challenger di Houston, dove perde contro la wild-card Peng Shuai per 7–6(5) 5-7 1-6.
2019-2020: doping, sospensione e rientro Apre l'anno con la sconfitta al terzo turno di qualificazione da Bibiane Schoofs per il torneo di Auckland. In seguito, contro ogni prognostico supera le meglio classificate Lauren Davis, Kaja Juvan e Jennifer Brady accedendo al main drawn degli Australian Open. Nel primo turno si impone su Bernarda Pera con il punteggio di 6-3 5-7 6-4, prima di cedere contro la campionessa dell'edizione 2016 Angelique Kerber (n° 2 WTA) per 2-6 3-6.
In seguito, supera le qualificazioni anche ad Acapulco e si impone su Irina Maria Bara per 6-0 6-2 e Sloane Stephens (n° 4 WTA, sua prima vittoria Top Ten) per 6-3 6-3, mentre nei quarti di finale perde contro Wang Yafan. Non si qualifica a Miami, A Monterrey esce di scena all'esordio per mano di Kristina Mladenovic. Si spinge per la seconda volta fino alla semifinale di un torneo WTA con le vittorie su Renata Zarazúa (4-6 6-2 6-3) e Francesca Di Lorenzo (4-6 7-5 6-1) nelle qualificazione e su Laura Siegemund (6-2 7-5) Anna Karolína Schmiedlová (7–6(3) 7–6(6)) e Sara Sorribes Tormo (6(6)–7 6-2 6-3), prima di venire fermata dalla giovane Amanda Anisimova con il punteggio di 6-4 6(2)–7 2-6. Conquistando 128 punti risale la classifica fino al 123º posto del ranking.
Non si qualifica nel torneo di Praga e al Roland Garros (costretta al ritiro). Non va oltre il primo turno del torneo WTA 125k di Bol perdendo contro Sara Sorribes Tormo.
Nel torneo di Londra, supera le qualificazioni eliminando Paula Ormaechea per 6(4)–7 6-4 6-2, Anna Zaja per 3-6 6-4 6-2 ed Olga Danilović per 6-4 6-4; in seguito, si impone sulla campionessa dell'edizione 2017 Garbiñe Muguruza con il medesimo punteggio. Nel secondo turno cede alla wild-card Harriet Dart con lo score di 6(4)–7 6-3 1-6.