Thanks for your comments and votes. I'm pleased to advise this is possible with the domainsync.php script. If a domain transfer is successfully completed when the domainsync.php script runs, it will change the domain's status to Active automatically.

If the transfer fails, the eNom API returns enough information for us to be able to send the "Domain Transfer Failed" email template when the domainsync script runs. This will contain the reason for the transfer failure.

The status remains Pending Transfer at this time on the assumption that the client will want to try the transfer again. Should they decide not to go ahead with it, the status could be changed manually to Cancelled.

WHMCS used to sync all domains in one go, but that was hitting the max request limits of some registrar's API. So by checking the domain statuses in batches it reduces the load on your registrar and prevents your access being blocked entirely.

You can still run the cron several times per day, we recommend every 4 hours, but that could be more or less frequent if desired.

WHMCS John wrote:

Hi,

WHMCS used to sync all domains in one go, but that was hitting the max request limits of some registrar's API. So by checking the domain statuses in batches it reduces the load on your registrar and prevents your access being blocked entirely.

You can still run the cron several times per day, we recommend every 4 hours, but that could be more or less frequent if desired.

We are still in 5.0.3 and syncing with each individual registrar cron file for sync, does this limit affect enom sync, logic boxes sync, etc? should we set it to sync more than once a day?

Also, i heard the domain sync script has some problems with some registrars in 5.0, is that still true?

1. If customer place a domain transfer order then you need to open a ticket for EPP code, why WHMCS does not ask for EPP code when customer place a order and save epp code so we don't need to ask EPP Code?

2. If customer place a order for domain transfer then why WHMCS did not hide "register domain" button in Admin area? (If domain is not registered then why even whmcs accept domain transfer order)

Kunnu wrote:

Current problem with WHMCS

1. If customer place a domain transfer order then you need to open a ticket for EPP code, why WHMCS does not ask for EPP code when customer place a order and save epp code so we don't need to ask EPP Code?

2. If customer place a order for domain transfer then why WHMCS did not hide "register domain" button in Admin area? (If domain is not registered then why even whmcs accept domain transfer order)

I dont see why there should even be a todo item for transfers any more, maybe have it optional so that you can turn off that function if you dont need it. Seems pointless to me to have it created when you only use API's that function properly and do the callback correctly. Sure if you are using a module that does not fully support the automation process its needed. But then. You could just avoid those modules/registrars and save yourself the hassles.

I agree that transfers need a little more automation to save on human time. Something we were constantly getting asked was about the status of incoming transfers which required us to check at Enom and relay the information to the client that their transfer was in progress, failed for whatever reason, etc.

Having a script (or building into the existing sync script) to grab the reason for failed domain transfers and shoot an email off to the client with this would be great.

Also, I just thought - why not have an "Update" button on the domain's tab? Already there are buttons for Register, Transfer, Renew, Modify, Release - why not have an update button too - so you can check and update an individual domains' status and expiry date.

That way, you could wait for the domain sync script to update and if the customer gets onto you about it before it gets done - you can force the update manually on that particular domain.

Chris wrote:

Also, I just thought - why not have an "Update" button on the domain's tab? Already there are buttons for Register, Transfer, Renew, Modify, Release - why not have an update button too - so you can check and update an individual domains' status and expiry date.

That way, you could wait for the domain sync script to update and if the customer gets onto you about it before it gets done - you can force the update manually on that particular domain.

Makes good sense to have official Domain Transfer In/Out Complete/Failed messages with things like {$registrar} {$message} and {$new_expiry_date} in it for official use.

Since the domain sync cron handles updating completed transfers, (each and every run) if enabled in settings, it should also send out those email to the customer.

Chris wrote:

Also,

I just thought - why not have an "Update" button on the domain's tab? Already there are buttons for Register, Transfer, Renew, Modify, Release - why not have an update button too - so you can check and update an individual domains' status and expiry date.

Good idea, thumbs up!

Why not also have a separate "registrar data" section where this information is pulled via API each time the domain is viewed on the admin page. We could use it to compare with our database values.

Rob Golding wrote:

You shouldn't need (or want) to be updating status and dates through cron jobs - it's perfectly feasible (and already done in some cases) for the registrar to 'callback' to WHMCS to complete transfers, send completed emails etc

If callbacks are supported by the registrar, then a callback would be sent to WHMCS anytime something happened to the domain at the registrar side.

The question is, does every registrar support every status/date change callback necessary?

Unfortunately, I don't know of any registrars who are actually doing this and we'll still need a method of handling/updating/syncing transfers for registrars without callbacks via the traditional cron method.

>Can you elaborate? How would that work automatically for all domains?

When an 'event' happens to a domain, the registrar 'calls' WHMCS to 'action' something.

>Unfortunately, I don't know of any registrars

Ours does :)And yes, every event can have a callback - we use the 'expired' event to trigger WHMCS sending an email telling them about the costs and process for redeeming the domain if they dont pay the renewal invoice immediately for example.

It would be great for the registrar to call our system to update domains on demand instead of the other way around, but realistically this functionality barely exists and to make this work for all domains on all registrars would be impossible. We need something that works for every domain, not just a few.

One thing that does work, is to query the registrar via their respective API to update the status of a domain transfer. It's a very simple process that takes hardly any time to implement - and every registrar supports this.

Certainly for transfer status updates, doing this via cron is a very suitable method.

Perhaps in the future, if more registrars support this "push" method you are talking about, changes could be made - but at the moment, WHMCS doesn't even support the most basic task of updating a domain's status when the transfer has completed - and this is something so simple to do with an API call, the mind boggles as to why it hasn't yet been implemented.

If any of you remember an old system called AWBS that has pretty much died now - that was updating the status of domain transfers as far back as 2007 for Enom, Directi/Resellerclub and Nominet domains. It ran on the daily cron and simply worked.

This isn't a complicated request - its a simple API command. The work required to implement it in the domain sync cron is minimal. WHMCS just hasn't got around to it yet. I'm sure they will one day - maybe after I've retired.

OMGosh... I'm about to migrate from AWBS to WHMCS and just stumbled upon this. You mean to tell me that WHMCS does not check the transfer status and notify customers when the transfer is complete?? Or am I missing something here?

Thanks for your comments and votes. I'm pleased to advise this is possible with the domainsync.php script. If a domain transfer is successfully completed when the domainsync.php script runs, it will change the domain's status to Active automatically.

If the transfer fails, the eNom API returns enough information for us to be able to send the "Domain Transfer Failed" email template when the domainsync script runs. This will contain the reason for the transfer failure.

The status remains Pending Transfer at this time on the assumption that the client will want to try the transfer again. Should they decide not to go ahead with it, the status could be changed manually to Cancelled.

Domain Sync EnabledAutomatically checks and updates the Status and Expiry Date of domains names against your domain registrar to ensure the date in WHMCS is always correct (registrar permitting). To use this feature tick the option and configure the following cron job on your server:

php -q /path/to/home/public_html/whmcspath/crons/domainsync.php

This can be configured as often as you like, however to avoid overloading your domain registrar we recommend running it every 4 hours. The sync script will check Active 50 and Pending Transfer domains at a time:

Active domains will have their Expiry Date corrected to match the registrar if different.If the dates already match it will report "In Sync".

Pending Transfer domains will usually report an error until the transfer process is complete at which point the status will automatically be changed to Active, the Domain Transfer Completed email template sent and the Expiry Date obtained from the registrar.

When used with the eNom module, the script can also send the Domain Transfer Failed email template if the transfer process fails.

This doesn't seem relevant to this topic. The topic is about transfers and all domain transfers are synced on every cron run of the domainsync.php script. It's only actual domain expiry syncs that are limited to 50 domains per cron run -- not the transfer status.