Faits:
A. Le 12 juillet 2002, W._ SA (ci-après: W._), société active dans le transport national et international, a conclu un contrat intitulé "cooperation agreement" avec A._, lequel exploitait à Genève une entreprise individuelle sous l'enseigne A.V._. A._ s'engageait à adresser à sa cocontractante les demandes de clients en relation avec les activités de déménagement internationales (art. 2.1) contre versement d'une rémunération correspondant la première année à 7%, puis à 4% du chiffre d'affaires réalisé à la suite des déménagements ainsi exécutés.
Selon l'art. 3.2 de l'accord, W._ devait verser à A._ deux avances de 50'000 fr. chacune sur la rémunération ("two payments in advance on the Turnover Fee"); le premier montant était payable le 17 juillet 2002 et le second, un mois plus tard. La première avance a été versée à la date convenue; la seconde n'a pas été payée.
L'art. 6.4 de l'accord prévoyait qu'à la fin des rapports contractuels, W._ établirait un décompte détaillé, indiquant l'ensemble des sommes payées à A.V._, y compris les avances, le total des montants dus à cette entreprise au titre de rémunération calculée sur le chiffre d'affaires et la différence résultant de ces deux montants ("the balance resulting from these two amounts"); la partie débitrice de cette différence la verserait à son cocontractant dans les dix jours suivant la notification du décompte.
En cas de litige, le for était à Genève (art. 11 de l'accord).
La faillite de A._ a été prononcée le 21 mars 2006. Six jours plus tard, A._ a adressé à W._ un relevé de compte répertoriant les factures ouvertes, établies entre août 2005 et mars 2006. D'après ce décompte, un montant de 58'168 fr.90 était dû au titre de prestations diverses fournies par A._, prestations sans lien avec l'accord de coopération, ainsi qu'un montant de 50'000 fr. au titre de seconde avance prévue dans l'accord de coopération. Sur invitation de l'office des faillites, W._ a reconnu et payé le montant de 58'168 fr.90 uniquement.
Le 9 juillet 2007, la masse en faillite de A._ a cédé ses droits, notamment en relation avec l'accord de coopération précité, à X._ Sàrl, à Genève. La cession en faveur d'un second créancier a été ultérieurement révoquée.
W._ a changé de raison sociale; en 2007, elle est devenue Y._ AG (ci-après: Y._).
B. Le 22 décembre 2008, X._ Sàrl a assigné Y._ en paiement de 50'000 fr., plus intérêts, devant le Tribunal de première instance du canton de Genève. Fondant son action sur l'<ref-law>, elle faisait valoir que Y._ avait violé l'art. 3.2 de l'accord de coopération en refusant de payer le second montant de 50'000 fr. Selon la demanderesse, ce montant devait être payé d'avance, sans condition, et il est devenu exigible le 12 août 2007. Par ailleurs, en n'établissant pas le décompte final prévu à l'art. 6.4 du contrat, Y._ aurait renoncé, par acte concluant, à remettre en question le paiement des deux montants qu'elle s'était engagée à verser inconditionnellement avant la fin du contrat.
Y._ a conclu au rejet de l'action.
Sur requête du tribunal, un témoin, qui avait travaillé pour W._ en qualité de contrôleur financier, a produit un exemplaire d'un décompte informatique, intitulé "cut off list", qui détaille le chiffre d'affaires réalisé grâce aux clients adressés par A._; il ressort de ce document, contesté par X._ Sàrl, que A._ pouvait prétendre à une rémunération de 30'277 fr. pour la période allant de juillet 2002 à mai 2005.
Par jugement du 20 décembre 2010, le Tribunal de première instance a admis l'action et condamné Y._ à payer à X._ Sàrl la somme de 50'000 fr. avec intérêts à 5% dès le 17 août 2002.
Statuant le 26 août 2011 sur appel de Y._, la Chambre civile de la Cour de justice du canton de Genève a réformé le jugement de première instance et débouté X._ Sàrl de toutes ses conclusions. Elle a constaté tout d'abord que l'accord de coopération avait pris fin avant la date d'ouverture de l'action; ainsi, seule l'application de l'art. 6.4 du contrat pouvait être exigée, cette disposition se rapportant à la rémunération due à la fin des rapports contractuels, contrairement à l'art. 3.2 qui traitait des paiements en cours d'exécution de la convention. Interprétant l'accord de coopération, les juges genevois sont arrivés à la conclusion que A._ pouvait uniquement prétendre à une rémunération en relation avec le chiffre d'affaires qu'il avait effectivement rapporté et que les avances prévues à l'art. 3.2 constituaient des acomptes, soit des sommes qui devaient être portées en déduction de la rémunération finalement due. La cour cantonale a ensuite constaté que Y._ alléguait que les prestations fournies par A._ ne justifiaient pas le versement de la somme réclamée, que X._ Sàrl n'avait pas allégué le contraire, que cette partie n'avait pas fourni de précisions de temps, de lieu et de personne au sujet des prestations effectivement fournies par A._, ni offert de les prouver, et qu'elle n'avait pas contesté de manière suffisamment précise les allégués de Y._ au sujet de ces prestations; elle en a conclu que les allégués de Y._ selon lesquels A._ n'avait pas fourni des prestations donnant droit à des commissions dépassant le montant de la première avance étaient établis, étant précisé qu'ils n'étaient contredits par aucun élément figurant au dossier. En conséquence, la Chambre civile a jugé que le paiement de la somme réclamée ne se justifiait pas sur la base de l'art. 6.4 de l'accord.
C. X._ Sàrl interjette un recours en matière civile. Elle conclut principalement à ce que Y._ soit condamnée à lui payer 50'000 fr. avec intérêts à 5% l'an dès le 17 août 2002. A titre subsidiaire, elle demande le renvoi de la cause à la Cour de justice pour nouvelle décision au sens des considérants.
Il n'a pas été requis de réponse de la part de l'intimée.

Considérant en droit:
1. La recourante conteste certains faits retenus par l'autorité précédente.
1.1 Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si les constatations de ladite autorité ont été établies de façon manifestement inexacte - notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 4.1.2 p. 62; <ref-ruling> consid. 2.4 p. 314; <ref-ruling> consid. 1.5 p. 130, 397 consid. 1.5 p. 401) - ou en violation du droit au sens de l'<ref-law> (<ref-law>), et pour autant que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
S'il entend s'écarter des constatations de fait de l'autorité précédente, le recourant doit expliquer de manière circonstanciée en quoi les conditions d'une exception prévue par l'<ref-law> sont réalisées. A défaut, il n'est pas possible de tenir compte d'un état de fait divergent de celui qui est contenu dans l'acte attaqué (<ref-ruling> consid. 1.2 p. 187 et les arrêts cités). En particulier, le Tribunal fédéral n'entre pas en matière sur des critiques de type appellatoire portant sur l'état de fait ou sur l'appréciation des preuves (<ref-ruling> consid. 3 p. 104 s. et les arrêts cités).
S'il entend s'écarter des constatations de fait de l'autorité précédente, le recourant doit expliquer de manière circonstanciée en quoi les conditions d'une exception prévue par l'<ref-law> sont réalisées. A défaut, il n'est pas possible de tenir compte d'un état de fait divergent de celui qui est contenu dans l'acte attaqué (<ref-ruling> consid. 1.2 p. 187 et les arrêts cités). En particulier, le Tribunal fédéral n'entre pas en matière sur des critiques de type appellatoire portant sur l'état de fait ou sur l'appréciation des preuves (<ref-ruling> consid. 3 p. 104 s. et les arrêts cités).
1.2 1.2.1 La Cour de justice a retenu que l'accord de coopération avait pris fin avant l'ouverture de l'action, le 22 décembre 2008. La recourante objecte simplement que l'accord n'a jamais été dénoncé et qu'on ignore quand il a pris fin. Une telle critique ne satisfait pas aux exigences légales en matière de motivation rappelées ci-dessus (consid. 1.1). Il n'y a pas à entrer en matière.
1.2.2 L'autorité précédente a constaté que A._ semblait avoir accepté les explications de l'intimée au sujet de l'insuffisance du volume des affaires apportées et n'avait, pour cette raison, jamais mis formellement en demeure la société de s'acquitter de la seconde avance.
La recourante conteste avoir admis que le chiffre d'affaires apporté à l'intimée aurait été insuffisant pour justifier le paiement du second versement de 50'000 fr. La critique tombe à faux, rien de tel n'ayant été retenu par la cour cantonale.
La recourante prétend également, sans autre explication et sans donner de plus amples détails, qu'il résulterait des enquêtes que "deux témoins ont admis le fait que A._ a[vait] requis oralement à plusieurs reprises le paiement du deuxième paiement d'avance, même s'il n'a[vait] finalement pas insisté". La recourante ne donne pas la teneur des déclarations en cause, ni, a fortiori, ne démontre pour quel motif elles seraient inconciliables avec la constatation de fait critiquée; elle n'indique même pas où les trouver dans le dossier cantonal. Or, il n'appartient pas au Tribunal fédéral d'éplucher le dossier pour compléter le recours. Le grief est irrecevable.
Pour le surplus, relève du droit, et non du fait, la question de savoir si A._ devait formellement mettre l'intimée en demeure ou si le versement de l'avance litigieuse était une obligation à terme fixe ne nécessitant pas de mise en demeure par le créancier (cf. <ref-law>).
1.2.3 Selon les constatations cantonales, il ne ressort pas de la procédure que A._ a transmis à l'intimée les documents visés à l'art. 4.1 de l'accord de coopération. Cette disposition prévoit que, pour faciliter l'exécution des contrats transmis, A._ livrera à l'intimée un document comportant le nom et l'adresse du client, une description des travaux accomplis pour le client par le passé et toutes autres informations utiles, telles que les spécificités requises par le client.
La recourante affirme que A._ a satisfait à cette obligation, au motif qu'on ne verrait pas sinon comment l'intimée aurait pu exercer son activité de déménagement en relation avec l'accord de coopération. Il n'y a pas là une démonstration du caractère insoutenable de la constatation de l'autorité précédente. Peu importe au demeurant. En effet, le fait en cause est dénué de pertinence pour trancher les questions litigieuses, à savoir si la seconde avance était exigible et si elle aurait dû, le cas échéant, être remboursée faute de chiffre d'affaires suffisant. La cour cantonale n'a d'ailleurs tiré aucune conclusion de la constatation litigieuse, retenue dans la partie "en fait" de l'arrêt attaqué.
2. La recourante se plaint en outre d'arbitraire en relation avec l'<ref-law>. Elle soutient que la décision des juges précédents de considérer qu'elle n'avait pas suffisamment contesté les allégués de l'intimée au sujet du volume des affaires effectivement apportées par A._ est entachée d'arbitraire.
2.1 L'<ref-law> réserve le pouvoir d'appréciation du juge dans l'application du droit, application que le Tribunal fédéral revoit, le cas échéant, avec retenue, mais librement, et non pas uniquement sous l'angle de l'arbitraire. La critique soulevée par la recourante ne relève donc pas d'une application de l'<ref-law> éventuellement contraire à l'art. 9 Cst.
2.2 Cela étant, l'autorité cantonale a retenu que la recourante n'avait pas suffisamment contesté les allégués de l'intimée au sens de l'art. 126 de la loi genevoise de procédure civile du 10 avril 1987 (LPC/GE, encore applicable à la procédure opposant les parties), disposition relative à l'allégation des faits. Selon l'alinéa 2 de cette norme, la partie à laquelle des faits sont opposés est tenue de reconnaître ou de dénier chacun des faits catégoriquement; l'alinéa 3 ajoute que le silence et toute réponse évasive peuvent être pris pour un aveu desdits faits.
C'est donc l'application de cette norme de droit cantonal qui est en jeu dans le cas présent. Sauf dans les cas cités expressément à l'art. 95 let. c à e LTF qui n'entrent pas en ligne de compte ici, le recours ne peut pas être formé pour violation du droit cantonal en tant que tel; il est possible en revanche de faire valoir que la mauvaise application du droit cantonal est arbitraire au sens de l'art. 9 Cst. ou contraire à d'autres droits constitutionnels (<ref-ruling> consid. 3 p. 351; <ref-ruling> consid. 6 p. 397, 462 consid. 2.3 p. 466). Le Tribunal fédéral n'examine le moyen fondé sur la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de manière précise (<ref-law>). Cela signifie que le recourant doit préciser quel principe constitutionnel est en cause et exposer de manière claire et détaillée en quoi ce principe est violé par la décision attaquée; à défaut, le recours est irrecevable (<ref-ruling> consid. 3 p. 351 s.; <ref-ruling> consid. 6 p. 397). En particulier, s'il se plaint d'une violation de l'art. 9 Cst., le recourant doit démontrer par une argumentation précise que la décision entreprise repose sur une application arbitraire de la loi cantonale (<ref-ruling> consid. 3 et l'arrêt cité); il doit désigner la norme cantonale en cause et montrer en quoi consiste l'arbitraire (cf. <ref-ruling> consid. 2a p. 3).
En l'espèce, la critique de la recourante, qui n'évoque même pas le droit cantonal, ne satisfait manifestement pas à ces exigences. Elle se révèle par conséquent irrecevable.
3. 3.1 Dans ce contexte, la recourante se plaint également d'une violation de l'<ref-law>, reprochant à l'autorité précédente de ne pas avoir exigé de preuve stricte et de s'être satisfaite d'une simple vraisemblance à propos des allégués de l'intimée relatifs au volume d'affaires apporté par A._.
3.2 A cet égard, il ressort clairement de l'arrêt attaqué que l'autorité précédente ne s'est pas limitée à la vraisemblance, mais a retenu que les faits étaient établis (cf. consid. 3.4.2 de l'arrêt du 26 août 2011, § 7). Dans ces circonstances, il ne saurait être question d'une violation de l'<ref-law>, lequel règle le fardeau de la preuve et le droit à la preuve.
4. Invoquant notamment une violation de l'<ref-law>, la recourante s'en prend à la manière dont la cour cantonale a appliqué le droit fédéral. Elle critique essentiellement l'interprétation donnée par les juges genevois aux art. 3.2 et 6.4 de l'accord de coopération.
4.1 Après avoir posé les principes en matière d'interprétation subjective - qui relève du fait - et d'interprétation objective - qui relève du droit -, la cour cantonale, en se référant au principe de la confiance, s'est finalement fondée sur une interprétation objective des clauses contractuelles susmentionnées. Il convient à présent d'examiner si le résultat de cette interprétation résiste au grief de violation du droit fédéral.
4.2 Lorsqu'il interprète les déclarations faites et les comportements selon la théorie de la confiance, le juge recherche comment une déclaration ou une attitude pouvait être comprise de bonne foi en fonction de l'ensemble des circonstances. Le principe de la confiance permet d'imputer à une partie le sens objectif de sa déclaration ou de son comportement, même s'il ne correspond pas à sa volonté intime (<ref-ruling> consid. 3.2.1 p. 188 et les arrêts cités).
Le sens d'un texte, apparemment clair, n'est pas forcément déterminant, de sorte que l'interprétation purement littérale est prohibée. Même si la teneur d'une clause contractuelle paraît limpide à première vue, il peut résulter d'autres conditions du contrat, du but poursuivi par les parties ou d'autres circonstances que le texte de ladite clause ne restitue pas exactement le sens de l'accord conclu. Il n'y a cependant pas lieu de s'écarter du sens littéral du texte adopté par les intéressés lorsqu'il n'existe aucune raison sérieuse de penser qu'il ne correspond pas à leur volonté (<ref-ruling> consid. 3.2.1 p. 188).
4.3 L'art. 3.2 de l'accord de coopération prévoit, sans aucune réserve ou condition, que le second versement de 50'000 fr. sera effectué un mois après la signature de l'accord de coopération. Cela pouvait et devait de bonne foi être compris dans le sens que ce montant serait effectivement versé à la date prévue, sans qu'une autre condition ne doive encore être remplie. En outre, un lien avec le nombre d'affaires transmises par A._, respectivement avec la rémunération due à ce titre, ne devait pas s'imposer à l'esprit, dès lors que le premier montant de 50'000 fr. était dû à la signature de l'accord, soit avant toute exécution du contrat, et qu'il était improbable qu'après un mois seulement, A._ puisse déjà avoir droit à une rémunération impliquant un second versement de 50'000 fr. Par ailleurs, la date du paiement a été fixée d'un commun accord par les parties. Le débiteur était ainsi en demeure dès l'expiration de ce jour déterminé (<ref-law>). Cela ne signifie pas pour autant que la recourante dispose à l'heure actuelle d'une créance de 50'000 fr. envers l'intimée.
Aux termes de l'art. 3.2 du contrat, la somme litigieuse était un "payment in advance", payable un mois après la conclusion de l'accord de coopération, et non pas au moment de sa conclusion. Contrairement à l'avis de la recourante, elle ne saurait dès lors être qualifiée d'arrhes (<ref-law>; <ref-ruling> consid. 3.2.1 p. 47). Aux termes de l'art. 6.4 du contrat, le décompte final devait inclure tous les montants payés à A._, y compris les paiements en avance, pour déterminer le montant auquel il avait encore droit ou qu'il avait perçu en trop et devait restituer. Cette disposition ne peut de bonne foi être comprise que dans le sens que la somme litigieuse était un acompte sur les rémunérations dues en exécution de l'accord de coopération, qu'elle n'était pas due en sus et qu'elle devait être remboursée dans la mesure où elle dépassait le montant total auquel A._ avait droit à titre de rémunération.
L'accord de coopération a pris fin. La liquidation des prétentions encore dues entre les parties était alors régie par l'art. 6.4. Certes, la recourante objecte avec raison que cette clause stipule que la différence à recevoir ou à rembourser par l'une ou l'autre des parties sera calculée sur la base d'un décompte final détaillé à dresser par A._, respectivement par l'intimée, et qu'un tel décompte n'a jamais été établi. Mais cela n'interdit pas de déterminer ce solde d'une autre façon. En l'espèce, l'autorité précédente, sur la base du dossier de la cause, a retenu que les allégués de l'intimée relatifs au volume des affaires effectivement apportées par A._ étaient établis et que ce volume était si restreint qu'il ne donnait même pas droit à une rémunération correspondant au montant de la première avance. A supposer que l'intimée eût versé la seconde avance à la date convenue, le montant de 50'000 fr. aurait donc dû lui être remboursé après que l'accord de coopération était venu à terme.
Il s'ensuit que la recourante, en sa qualité de créancière cessionnaire, n'a pas droit au versement de la somme litigieuse, que A._ ne pouvait plus exiger une fois que l'accord de coopération avait pris fin. C'est à bon droit que l'autorité précédente a rejeté l'action. Le moyen tiré d'une violation du droit fédéral, singulièrement de l'<ref-law>, ne peut être qu'écarté.
5. Sur le vu de ce qui précède, le recours doit être rejeté dans la mesure où il est recevable.
La recourante, qui succombe, prendra à sa charge les frais judiciaires (<ref-law>).
Il n'est pas alloué de dépens à l'intimé, qui n'a pas déposé de réponse.

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
2. Les frais judiciaires, arrêtés à 2'500 fr., sont mis à la charge de la recourante.
3. Il n'est pas alloué de dépens.
4. Le présent arrêt est communiqué aux mandataires des parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 24 octobre 2011
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
La Greffière: Godat Zimmermann