Considérant:
que G._ a saisi le Tribunal administratif fédéral d'un recours dirigé contre une décision de l'Office de l'assurance-invalidité pour les assurés résidant à l'étranger du 29 décembre 2008;
que par décision incidente du 27 mai 2009, le Tribunal administratif fédéral a invité la recourante à verser une avance de frais de 400 fr. sur le compte du tribunal jusqu'au 29 juin 2009, sous peine d'irrecevabilité du recours;
que le Tribunal administratif fédéral a précisé (ch. 5 du dispositif) que le délai serait considéré comme observé si, avant son échéance, le montant était versé à la Poste Suisse ou débité en Suisse d'un compte postal ou bancaire en faveur de l'autorité;
que par jugement du 4 novembre 2009, le Tribunal administratif fédéral a déclaré le recours irrecevable, car l'avance de frais requise a été partiellement (394 fr.) créditée sur le compte du tribunal le 30 juin 2009;
que G._ interjette un recours contre ce jugement, en concluant au renvoi de la cause à l'autorité de recours de première instance afin qu'elle reprenne la procédure;
qu'à l'appui de ses conclusions, la recourante soutient qu'elle s'est acquittée du montant de l'avance de frais requise le 26 juin 2009, conformément aux modalités prévues par le Tribunal administratif fédéral;
qu'à cet effet, elle produit la copie d'un ordre de paiement de 400 fr. adressé à Caixanova, daté du 26 juin 2009;
qu'il ressort toutefois de ce document, signé par la recourante, que les fonds devaient être crédités avec valeur au 30 juin 2009;
que la recourante démontre ainsi qu'elle a donné un ordre de paiement dont l'exécution allait être tardive;
que dans ces conditions, le Tribunal administratif fédéral n'a pas violé le droit fédéral en déclarant le recours irrecevable;
que la Cour de céans renoncera aux frais, vu les circonstances (<ref-law>, 2e phrase),

par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Il n'est pas perçu de frais judiciaires.
3. Le présent arrêt est communiqué aux parties, au Tribunal administratif fédéral, Cour III, et à l'Office fédéral des assurances sociales.
Lucerne, le 31 mai 2010
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Le Greffier:
Meyer Berthoud