In a large mixing bowl, combine flour, baking powder, baking soda, and salt until combined. Set aside.
Put the butter, sugar, and vanilla in a medium-sized mixing bowl. With an electric mixer, cream together for 2-3 minutes.
Add the cocoa powder to the butter mixture and mix just until combined.
Beat the eggs into the butter mixture, one at a time.
Mix the sour cream into the batter.
Stir the dry mixture into the wet mixture, alternating with the buttermilk until fully incorporated. Do not overmix.
Pour the mixture into a large piping bag or ziploc bag with one corner of the bag snipped off and pipe the batter into each donut cavity about ¾ full. You can also use a spoon to fill each donut well.
Bake in the preheated oven for 8-10 minutes, or until the donuts are cooked through and a toothpick inserted in the donut comes out clean.
Allow the donuts to cool in the pan for 5-10 minutes before removing from the pan.