The vast majority of flights through Brazil will at least have a stop over in São Paulo. São Paulo/Guarulhos–Governador André Franco Montoro International Airport (GRU) is basically the international hub for Brazil. This has many advantages and disadvantages because while you will almost always find staff who speak fluent English, it can be very overwhelming due to the size.
As I’m sure many of you do when checking in, I always like to double check when I need to pick up my bags. I am almost always told that they are checked all the way through to my final destination, but that is incorrect when travelling to Brazil (they do tend to be checked through when leaving Brazil). When going there, I have always had to pick up my bags in São Paulo. That makes sense when connecting, because they wouldn’t know to do a customs check when you arrive on your domestic connection (note: I have been to countries where a domestic connection somehow means you don’t actually go through customs). The airport staff in São Paulo will know for sure, but I am confident telling you that you will pick up your bags in São Paulo.
After picking up your bags in São Paulo, you have to go through customs. It is only a line, and you just walk through the door/aisle that applies to you – Red Sign/Items to declare, or Green Sign/No items to declare. They have border guards there who make random selections as well. It is important that you are not on your cell phone, and remove your hat/sunglasses when going through this section – they will stop you and make you remove them otherwise. In addition, when entering Brazil, you actually go through Duty Free Upon landing. I believe the current amount you can buy is $500 USD (~$650 Canadian), and the prices are very good. Just remember, you’ll be limited by Canada upon your return.
If you have a connection, you will have to check in again. The first time I flew through São Paulo, I almost missed my connection because of the check-in lines. What I did not realize, and is important to note, is that connection check-ins have their own dedicated lines. Generally I find I enter into the airport at the opposite end of the connection check-in, but follow the signs all the way to the front – don’t assume the line for check-in is the connections check-in until the sign specifically says so. The regular check-in lines sometimes appear to be hours-long, the connection line is usually five minutes.
Since it is such a big airport, São Paulo actually has three terminals. The first number in your Gate (101, 207, 319) tells you from which terminal you are departing. While terminals 2 and 3 are connected, the walkway is very long, and it may be faster to take the shuttle bus (you will definitely need to take it to Terminal 1). There is signage, but I did find it a bit worrisome, because the shuttle bus is actually outside the front doors of the airport. I did not like having to leave the airport, but it is basically across the first street outside the door and there will be many other people also connecting – there is definitely comfort in numbers.
Terminal 3 has a bunch of nice restaurants and food, although at inflated airport prices (which makes them approximately normal Canadian prices). I find the best deal for food is the Pizza Hut Buffet (which also makes it very fast), although the beer there is more overpriced than most. Down the hall a little bit is a beer and snacks pub that has better prices for beer. Terminal 1 is very limited in restaurants post-security. There is a pizza place, a Pão de Queijo store, a Subway, and a couple minor food carts. There was a new place slated to open last time I went, but I don’t recall what it was. I have spent very limited time in Terminal 2, so I can’t speak to their restaurants.