Before you go to your registrar's home page or call any support number, take a step back and make sure you know what you want to do! I can't stress this enough: if you are confused as to what you want to do, then you will probably confuse the customer service representative and that's not good! We are going to assume that you want to take a domain name that's registered with a certain registrar and move the domain name to another registrar. Please take note that the ONLY thing this accomplishes is that the domain name is now "leased" by a different company, that's it! This has nothing to do with your website, your email, your DNS, or anything like that! The most common mistake is when someone's webhost tells them to "transfer" the domain name to different servers. What they are talking about is something called DNS and that's another article on its own. So if you're still with me and want to change the registrar of record for the domain name, then please continue.
If you have gotten this far then you probably have another registrar in mind where you want to move the domain name to. That's great! Many people ask which companies I recommend and from personal experience I would say use GoDaddy or Network Solutions. While the price difference is considerable, they both have different things to offer so it comes down to what you want and what you need.
The first thing that needs to be done for a domain name transfer is the transfer needs to be initiated. The only company that can initiate a domain name transfer is the gaining registrar (the company you want to move the domain to). No one else is able to do this, so either call up the new registrar, or go to their website to initiate the transfer. You will most likely need to set up an account if you don't already have one which only takes a few minutes. Initiating the transfer is quite easy as most registrars have a very simple online process. While each registrar is different, the process is usually as simple as logging into your account, clicking on something that says "transfer domains", typing in the domain name, and clicking "ok".
Now the transfer is in motion! Here's what happens behind the scenes to your domain name - it's important to understand this so you know what's going on at all times! The gaining registrar sends an email to the admin contact in the WHOIS database for this domain name. In that email, there is a link the admin needs to click on and actively accept the transfer of the domain name. If the admin contact fails to accept the transfer via this hyperlink, the gaining registrar will acknowledge this as rejecting the transfer. The time limit to accept this transfer request is usually around 7 days.
If the admin contact's email address in the WHOIS record is not correct, then it needs to be updated before anything else. This process can sometimes take a while depending on the account information the registrar of record has in its database. This is a very good reason for initiating a transfer well before it's due to expire.
Now, if the admin contact approves the transfer request, then the gaining registrar sends a notification to the registry for the domain TLD. The registry checks the status of the domain and tells the gaining registrar if it's ok to continue or not. In order for a domain name to transfer, it has to be in an ACTIVE status. If the domain is locked, pending delete, in redemption, inactive - anything other than ACTIVE, it will not transfer. This is important to know because most people transfer a domain name when it's about to expire or just after it expired. This isn't good because most registrars will deactivate a domain name shortly after expiration which will automatically block transfer requests. And before you ask, yes, they have every right to do this and they do not have to reactivate your domain name for you until you pay them a renewal fee. So make sure you initiate a transfer early - I recommend at least 14 days in advance, but more if possible. The domain name also needs to be registered with a given registrar for at least 60 days. This means you cannot purchase a domain name and then transfer it to another registrar of record in less than 60 days. You also can't transfer a domain name, and then transfer it again within 60 days.
If the domain name is in an ACTIVE state and has been registered for more than 60 days, the registry informs the gaining registrar that the transfer process will continue. The registry then informs the losing registrar that a transfer request has been made for the domain name.
This part can be tricky depending how your current registrar handles outbound transfer requests. ICANN states that the gaining registrar is the one who carries the burden of proof of authentication. This basically means the gaining registrar is responsible for contacting the correct person (admin contact) and getting their explicit approval for the domain name transfer. The losing registrar does not have this burden, and therefore is not bound to the same specific rules as the gaining registrar. The losing registrar may contact the admin contact, the registrant, an account contact - whoever they deem fit for a domain transfer approval.
The losing registrar has 5 days to respond to the registry. If the losing registrar does not respond to the registry in 5 days, then the registry automatically assume the transfer was approved by the losing registrar. This means that if the contact who received the losing registrar's email took no action, deleted their email, or chose to ignore it, the transfer request would be considered approved from the losing registrar.
I'd like to point out the potential danger that can be caused here. There is potential for someone trying to take control or ownership of the domain name by initiating a transfer request. If they can somehow get the transfer request to this step, and the contact on record for the losing registrar does not receive the email or takes no action, the transfer will be automatically approved! For this reason, it is always recommend to be with a registrar who has some kind of "domain locking" or "domain protect" feature.
If the transfer is approved, then the losing registrar notifies the registry. The registry then moves the domain name from the losing registrar to the gaining registrar's account. The registry then notifies the gaining registrar that the transfer has completed and the gaining registrar notifies the person on the account where the domain transfer was initiated.
Is this complicated? Well it certainly can be. However, it's best to understand this because you'll be surprised at how many customer service representatives don't even know the details of this process. And the worst thing you can do is "take someones word for it" when it comes to your domain names! I hope this helped out a few people and remember: lock your domains, always make sure the contact information in both the WHOIS record and your registrar's account is up to date!