Faits :
A.
Le 31 juillet 2012, A._ et B._ SA ont conclu un contrat de prêt, dont le montant total (152'571 fr.60) devait être remboursé en 72 mensualités de 2'119 fr.05 chacune, payables dès le 31 août 2012.
B.
B.a. Le 9 mai 2014, la banque a fait notifier à l'emprunteuse un commandement de payer la somme de 91'500 fr.25 plus intérêts et frais (poursuite no ccc), fondée sur le contrat de prêt précité; cet acte a été frappé d'opposition.
Par jugement du 21 juillet 2015, le Tribunal de première instance de Genève a refusé la mainlevée provisoire; il a considéré que la poursuivie avait rendu vraisemblable que, à l'époque de la signature du contrat, «elle souffrait d'une maladie psychique susceptible d'affecter sa capacité de discernement ».
B.b. Le 3 novembre 2018, la poursuivante a fait notifier à la poursuivie un commandement de payer la somme de 93'869 fr.25 plus intérêts et frais (poursuite no ddd), invoquant le solde impayé du prêt. Cette poursuite a fait l'objet d'un «contrordre».
B.c. Le 10 avril 2019, la poursuivie s'est vu notifier un nouveau commandement de payer portant sur la somme de 65'214 fr. en capital, réclamée à titre de « solde sur contrat 20072596» (poursuite no eee).
Le 21 mai 2019, la poursuivie a porté plainte, faisant valoir que cette poursuite était abusive. La poursuivante ayant adressé à l'Office une «demande de radiation» de cette poursuite, la plainte a été déclarée sans objet par l'autorité de surveillance le 29 août suivant.
B.d. Le 26 août 2019, la poursuivante a fait notifier à la poursuivie un quatrième commandement de payer, en recouvrement d'une somme de 93'869 fr. 25, toujours fondée sur le même contrat de prêt (poursuite no fff); cet acte a été frappé d'opposition totale.
C.
Le 29 août 2019, la poursuivie a porté plainte contre cette dernière poursuite, qu'elle qualifie de manifestement abusive.
Statuant le 12 décembre 2019, la Chambre de surveillance des Offices des poursuites et faillites de la Cour de justice du canton de Genève a rejeté la plainte.
D.
Par acte expédié le 20 décembre 2019, la poursuivie exerce un recours en matière civile; elle demande au Tribunal fédéral de constater la nullité de la poursuite no fff et de dire que cette poursuite ne sera pas portée à la connaissance de tiers.
Des observations n'ont pas été requises.
Considérant en droit :
1.
1.1. Le recours a été déposé dans le délai légal (art. 100 al. 2 let. a LTF) contre une décision finale (art. 90 LTF) rendue par une autorité de surveillance en matière de poursuite pour dettes ayant statué en dernière (unique) instance cantonale (art. 75 al. 1 LTF). Il est recevable indépendamment de la valeur litigieuse (art. 74 al. 2 let. c LTF). La poursuivie, qui a participé à la procédure devant la juridiction précédente et a un intérêt digne de protection à l'annulation ou la modification de la décision attaquée, a qualité pour recourir (art. 76 al. 1 LTF).
1.2. Le chef de conclusions tendant à ce que la poursuite litigieuse ne soit pas communiquée aux tiers est superfétatoire; il s'agit là d'une conséquence expressément prévue par la loi en cas d'admission du recours (art. 8a al. 3 let. a LP).
2.
2.1. Après avoir rappelé les conditions auxquelles est soumise la constatation, par les autorités de surveillance, de la nullité d'une poursuite pour abus de droit (art. 2 al. 2 CC), la juridiction précédente a nié leur réalisation dans le cas présent.
La poursuite litigieuse se fonde sur un contrat de prêt conclu le 31 juillet 2012 entre les parties, de sorte que la prétention en poursuite n'apparaît pas d'emblée fantaisiste ou manifestement inexistante. Il résulte ensuite du dossier que la poursuivante a saisi le juge de la mainlevée lors de la première poursuite, que la poursuivie a effectué des versements postérieurement au jugement refusant la mainlevée provisoire et que des pourparlers ont eu lieu entre les parties en vue d'un arrangement; les diverses poursuites s'inscrivent dans ce contexte, si bien que le procédé ne s'avère ni abusif ni chicanier. Enfin, la différence entre les montants réclamés dans les commandements de payer n'est pas un indice du caractère abusif des poursuites en question, vu les explications fournies par la poursuivante à ce sujet, étant observé que la somme faisant l'objet de la poursuite litigieuse correspond à celle de la poursuite no ddd.
2.2. Aux motifs de la cour cantonale, la recourante oppose en bref les arguments suivants: Le fondement juridique plus ou moins plausible de la créance ne constitue pas un critère d'appréciation du caractère abusif ou non de la poursuite sur laquelle repose cette prétention. En l'occurrence, la banque poursuivante a fait notifier quatre commandements de payer pour la même créance, dont le montant est élevé; les trois derniers, émis sur une période rapprochée, n'ont pas été suivis d'une procédure tendant à la mainlevée ou à la reconnaissance judiciaire de la créance, les poursuites n'ayant pas dépassé le stade de l'opposition; un tel procédé doit être qualifié de chicanier, partant d'abusif. Enfin, à aucun moment, lesdites poursuites n'ont été justifiées par la nécessité d'interrompre la prescription; par ailleurs, cette question ne se pose pas ici, puisque la créance en cause est soumise à un délai de prescription de 10 ans, lequel a été interrompu par la première poursuite et a recommencé à courir pour 10 ans.
2.3. L'autorité précédente a correctement rappelé les principes juridiques applicables à l'espèce; on peut dès lors s'y référer (parmi plusieurs: ATF 140 III 481 consid. 2.3.1 et les citations; arrêts 5A_729/2019 du 18 décembre 2019 consid. 4.3.1; 5A_563/2018 du 12 août 2019 consid. 3.5.1).
2.3.1. Avec raison, la recourante n'invoque pas l'abus de droit à l'encontre de la prétention en poursuite (parmi d'autres: arrêt 5A_1020/2018 du 11 février 2019 consid. 5.1 et les références); toutefois, contrairement à ce qu'elle affirme, le motif de la cour cantonale tiré de l'existence prima facie de la créance alléguée par la poursuivante n'est pas dénué de pertinence (arrêt 7B.219 et 220/2006 du 16 avril 2007 consid. 4.2). Certes, il appartient au juge civil de statuer à ce sujet, mais cet élément corrobore à tout le moins l'intention de l'intéressée de recouvrer une créance, dûment documentée quant à son existence et à sa quotité, et non d'obtenir sous la pression de multiples poursuites le paiement d'une somme indue (cf. ATF 115 III 18 consid. 3d). Du reste, la décision attaquée ne comporte aucune constatation sur la volonté (interne) de la poursuivante de vouloir tourmenter sa partie adverse et/ou ruiner sa réputation (art. 105 al. 1 LTF; arrêts 5A_453/2016 du 30 août 2016 consid. 2.2; 5A_317/2015 du 13 octobre 2015 consid. 2.2).
2.3.2. Dans l'arrêt publié aux ATF 115 III 18 - dont la recourante invoque le principe -, le Tribunal fédéral a jugé que la notification en quinze mois de quatre commandements de payer fondés sur la même cause et pour une somme importante, sans que le poursuivant n'ait jamais demandé la mainlevée ni la reconnaissance judiciaire de sa créance, peut constituer en principe un abus de droit; il a laissé la question indécise dans le cas particulier, car le poursuivant s'était borné à contester sa mauvaise foi sans alléguer la moindre circonstance propre à démentir le caractère abusif de son comportement (dans le même sens: arrêts 7B.36/2006 du 16 mai 2006 consid. 2.1; 7B.45/2006 du 28 juillet 2006 consid. 3.1). Les circonstances du cas présent sont cependant différentes.
La somme réclamée en l'espèce n'apparaît pas particulièrement élevée en comparaison de celle qui faisait l'objet de l'arrêt précité (750'000 fr.), et ne constitue pas une réclamation exorbitante reposant sur les seules allégations de la partie poursuivante, le capital et les intérêts pouvant être objectivement fixés sur la base du contrat de prêt.
En outre, la poursuivante a initialement requis la mainlevée provisoire et ne s'est pas contentée de réfuter simplement sa mauvaise foi, mais a, comme l'a retenu l'autorité précédente, exposé les raisons pour lesquelles elle a procédé de la sorte. Après cette première poursuite, elle est parvenue à un accord avec la recourante, dont les termes ont été arrêtés dans un courrier du 30 juin 2016 (figurant au dossier); cet accord n'ayant pas été observé, une deuxième poursuite a été introduite. Après une «réévaluation de la situation», elle a décidé de ne réclamer que le «solde de la créance nette» - c'est-à-dire le montant nominal de l'emprunt sous déduction des amortissements opérés - dans l'espoir de trouver une solution amiable, d'où le retrait de la poursuite précédente. Comme la recourante a porté plainte en dénonçant le caractère abusif de cette troisième poursuite, elle a retiré celle-ci et en a introduite une quatrième, portant cette fois sur l'entier de sa prétention. Il n'appartient pas à la Cour de céans de se prononcer sur les effets escomptés d'une telle stratégie; aux fins de la présente cause, il suffit de constater que les explications de la poursuivante, plausibles et documentées par les pièces du dossier, ne sont pas révélatrices d'un comportement chicanier.
Enfin, s'il est vrai que l'introduction d'une poursuite afin d'interrompre la prescription n'est pas abusive (arrêt 5A_1020/2018 précité consid. 5.1 et les références), on ne saurait en tirer la conclusion inverse lorsqu'elle ne tend pas à ce but (arrêt 7B.219 et 220/2006 consid. 4.2 et la jurisprudence citée).
2.3.3. L'abus de droit ne peut être sanctionné que s'il est «manifeste» (art. 2 al. 2 CC); partant, un tel moyen doit être admis avec retenue (ATF 144 III 407 consid. 4.2.3). Au regard des motifs qui précèdent, les circonstances exceptionnelles permettant de conclure à l'existence d'une poursuite abusive ne sont pas réunies; il s'ensuit que l'appréciation de la cour cantonale ne prête pas le flanc à la critique et doit, dès lors, être confirmée.
3.
En conclusion, le présent recours est rejeté, aux frais de la recourante qui succombe (art. 66 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 3 ́000 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué à la recourante, à l'Office des poursuites de Genève, à B._ SA et à la Cour de justice du canton de Genève, Chambre de surveillance des Offices des poursuites et faillites.
Lausanne, le 19 avril 2020
Au nom de la IIe Cour de droit civil
du Tribunal fédéral suisse
Le Président : Herrmann
Le Greffier : Braconi