My vet does them from as early as 4 months. Charlee was about 4.5 months when she was fixed.
ETA - the rescue I got Noah from, fixes their buns as early as 12 weeks. It is very early, but part of their policy is that the buns have to be fixed before they are adopted out - and with a large amount of buns needing to come in, they have to get buns fixed and adopted out as quickly as possible. Saying this, Noah came in at 9 weeks but wasn't fixed till 5 months (just before I got him).