En 2004, Silva obtient la nationalité bulgare et joue son premier match pour l'équipe de Bulgarie le lors d'un match amical remporté trois buts à un face à la Turquie. Peu avant la coupe du monde 2006, la FIFA refuse de laisser Silva jouer avec la Bulgarie, puisqu'il a déjà été sélectionné en équipe du Brésil des moins de 20 ans, en match officiel, lors de la coupe du monde des moins de 20 ans 1999.