Most failed transfer-ins have one of five causes: a wrong authorization code, a domain that is still locked, a 60-day restriction, a status that blocks transfers, or a timing issue. Check them in that order, because it follows how often each one happens and how fast you can rule it out.
This post is for the person on the support desk when a customer writes "my transfer has been stuck for days".
The return at the car rental
When you return a rental car, the clerk checks the same four things in the same order every time: fuel, damage, mileage, keys. Nobody invents a new routine for each customer. That is why it is fast, and why it catches the problem.
A transfer-in needs the same discipline. The list is below. Use it as a routine and not as a mood.
The triage order
1. The authorization code. It is the most common cause. Check that the code belongs to the domain in question, that it was copied without spaces, and that it has not expired. Many registrars generate a fresh code on request, and an old code may stop working. If in doubt, ask the customer to request a new one and paste it again.
2. The registrar lock. The domain must be unlocked at the current registrar before it can be transferred. A locked domain shows a transfer-prohibited status. The customer, or the old registrar's support, has to remove it.
3. The 60-day rule. Under ICANN's transfer policy, a registrar is allowed to refuse a transfer within 60 days of a new registration or a previous transfer, and many do. If the domain is young, this is the likely cause. The answer is to wait. Read the policy on ICANN's site before you quote the details to a customer, because exceptions exist.
4. The domain status. A domain that is expired, in redemption or pending delete cannot be transferred. Check the status and the expiry date at the current registrar. The post on what happens when a domain expires explains the stages.
5. Timing. For many generic TLDs a transfer can take up to five days, unless the current registrar approves it earlier. A transfer that has been pending for two days is not necessarily stuck. A transfer that has been pending for two weeks is.
Country-code TLDs are different
Do not apply generic rules to every extension. Many country-code TLDs use their own procedures. A .uk transfer uses a tag at the old registrar, for example, and Danish .dk domains use an authorization code from the registry's own self-service. Check the rules for the TLD before you answer.
Read what the registrar actually said
WHMCS keeps a log of the commands it sends and the answers it gets. When a transfer fails, find the entry for that domain and read the registrar's own response. It often names the cause in plain words. If nothing is logged, the command may never have left WHMCS, and that is a different problem: a module or configuration issue and not a transfer issue.
For more on keeping the billing side clear while this happens, read the post on separating billing from registrar results and the one on sync mismatches.
What to tell the customer
Short and plain works best. Here are two you can adapt:
Your transfer needs a fresh authorization code. Please request a new one from your current registrar, make sure the domain is unlocked, and send us the new code. We will restart the transfer as soon as we have it.
Your domain was registered recently, so your current registrar may not release it yet. Many registrars hold new domains for 60 days. We will try again as soon as the period has passed, and we will let you know.
Do not promise a date you do not control.
Keep a record
Write down the domain, the cause and the fix. If the same cause comes up every week, it belongs in your order form or your help page. A customer who is told to unlock the domain before ordering will not write to you later.
For a broader checklist from the other side of the desk, see the transfer checklist for portfolio operators. If you also move your own registrar module, the post on switching registrar modules in WHMCS covers the whole path. The WHMCS module page and the page for hosting companies and agencies have the rest.
Questions people ask
Why is my transfer stuck?
Check the authorization code first, then the lock, then the 60-day rule, then the status and then the timing.
How long does a transfer take?
For many generic TLDs up to five days, unless the current registrar approves it sooner. Country-code TLDs vary.
Can I transfer a domain that has expired?
Not once it is in redemption or later. Renew it first, if you still can.
Does a transfer add a year?
For many generic TLDs it does. Check the expiry date afterwards.
Sources
If you have a cause I have not listed, tell me in the chat on the website.
/Thomas