Feature Requests
Share ideas, discuss and vote on requests from other users in community
 

Snapshot Registrant details on Orders - Specify Registrant details via API

Katamaze shared this idea 6 months ago
Under Consideration

We desperately need two things in WHMCS:

1) Specify registrant details when using DomainRegister and DomainTransfer API functions

2) WHMCS must preserve registrant details upon order creation to prevent profile changes for existing orders

Both things are equally important and I'm going to show you why.

1. PREVENTING LAWSUITS

This is a serious problem for mid/large size enterprises using WHMCS. Let me explain what I mean with an example. A customer transfers 100 domains and creates the following contact to use as registrant information - Don't worry, I'm using fake details:

------------------------------------------------

Fiorenza Panicucci

TIM S.P.A.

[email protected]

Via Callicratide 24

Ussel

AO

11024

IT - Italy

+39.03102578690

------------------------------------------------

As you know, it may take some hours/days before all transfers complete. In the meantime the customer updates this contact details like follows:

------------------------------------------------

Fiorenza Panicucci

TIM S.P.A.

[email protected] <--- CHANGED

Via Callicratide 24

Ussel

AO

11024

IT - Italy

+39.03102578690

------------------------------------------------

Then he proceeds to transfer 100 more domains placing a new order. At this point we have 2 orders each one with 100 domain transfer both linked to the same contact.

We all would would expect WHMCS to process the 1st order using "[email protected]" email address and "[email protected]" for the 2nd but WHMCS has other plans. Both orders will be processed using "[email protected]" email for the simple reason that WHMCS doesn't store registrant data snapshort. The reason why customer placed 2 separate orders is exactly because he wanted use different emails but WHMCS just picks the "live" data.

The consequences of this behaviour are distruptive since customers can update all details (company name, telephone number, address...) anytime with orders that are still in progress causing hundreds of domains to be potentially registered with wrong details on a daily basis. If you have lot of domains this is the worst of your nightmares since:

a. You need to fix all information mnually at Registrar level. It can cost you a lot of money to spend for domain trades

b. Domain owners are angry and disappointed. Lawsuits are Just Around the Corner... and they're 100% right!

Please don't think that preventing customers from updating contact details is the solution. It will simply force customers to register an enormous number of contacts just because they need to use a different telephone number for specific domains or when they need to register X and Y for their company and W for themself. Not to mention that WHMCS forces email addresses to be unique. Believe me, I have already tried this solution over the years with tens of mid/large sized WHMCS systems and this is a complete nonsense.

Keep in mind that this was just an example. The problem described above can occurr in different ways also with registrations and ironically it gets worse when orders have a small number of domains. On a large scale it makes daily checks close to impossible. Over the years I had customers paying fines or literally buring money for unnecessary domain trades that were super expensive!

2. INTEGRATIONS

This part is less scary but still relevant. I work with customers that have heavily customized systems to the point that no one uses WHMCS cart at all. We're talking about 100% custom-made ordering processes that transmit data to WHMCS via API. The only thing we can't get is to register/transfer domains via API providing registrant information "on the fly". I hope I don't need to explain why this is important. We should have something like follows:

------------------------------------------------

$postData = array(

'domainid' => '1',

'registrant_firstname' => 'Mark',

'registrant_lastname' => 'White',

'registrant_companyname' => 'Dragon Ltd.',

'registrant_email' => '[email protected]',

// ... and so on

);

$results = localAPI('DomainRegister', $postData);

------------------------------------------------

Comments (1)

photo
1

Well said and I agree completely. We have run into this same situation numerous times.