Transfer Policy (IRTP) Management
The Inter Registry Transfer Policy, (also commonly referred to as IRTP), states that any time a material change is made to a domain’s registrant, organization or email address, a new Change of Registrant process should be triggered.
In WHASOLS registrar modules can incorporate support for Transfer Policy related messaging as follows.
WHOIS Contact Verification
WHMCS supports display of informational banners and messaging when contact verification is required, either due to a newly registered domain or a change in WHOIS contact information being requested.
For these informational alerts to be displayed, the appropriate attributes need to be set via the
GetDomainInformation
method within a registrar module.A description of the methods used in WHOIS Contact Verification messaging are provided below
Function | Type | Notes |
---|---|---|
setIrtpTransferLock | Boolean | Must be set to true to enable Transfer Policy functionality. True or false depending on the current IRTP Transfer Lock status for the given domain (optional) |
setIrtpOptOutStatus | Boolean | True or false depending on the current opt-out status for the Inter Registry Transfer Policy (optional) |
setIrtpTransferLockExpiryDate | Date | The expiry date of the transfer lock (optional) |
setDomainContactChangePending | Boolean | True if a WHOIS Contact Verification process is in progress |
setPendingSuspension | Boolean | True if failure to complete the current WHOIS Contact Verification process will result in domain suspension (typically for new registrations) |
setDomainContactChangeExpiryDate | Date | The date by which the current WHOIS Contact Verification process must be completed by |
Example Usage
<?php
function yourmodule_GetDomainInformation($params)
{
$tld = $params['tld'];
$sld = $params['sld'];
$domain = $sld . '.' . $tld;
$api = yourmodule_getApiClient($params);
try {
$domainInfo = $api->infoDomain($domain,'IRTP');
$values = [];
$values['setIrtpTransferLock'] = false;
if (isset($domainInfo['isTransferLock'])) $values['setIrtpTransferLock'] = $domainInfo['isTransferLock'];
$values['setDomainContactChangePending'] = false;
if (isset($domainInfo['isChangeRegistrant'])) $values['setDomainContactChangePending'] = $domainInfo['isChangeRegistrant'];
$values['setPendingSuspension'] = false;
if (isset($domainInfo['isPendingSuspension'])) $values['setPendingSuspension'] = $domainInfo['isPendingSuspension'];
if (isset($domainInfo['domainContactChangeExpiryDate'])) $values['setDomainContactChangeExpiryDate'] = $domainInfo['domainContactChangeExpiryDate'];
return [
'status'=>'success',
'response'=>[
'domain'=>$domainInfo['data']['domain'],
'regdate'=>$domainInfo['data']['regdate'],
'expdate'=>$domainInfo['data']['expdate'],
'lockstatus'=>$domainInfo['data']['isTransferLock'],
'setIrtpTransferLock'=>$values['setIrtpTransferLock'],
'setIrtpTransferLockExpiryDate'=>$values['setIrtpTransferLockExpiryDate'],
'setDomainContactChangePending'=>$values['setDomainContactChangePending'],
'setPendingSuspension'=>$values['setPendingSuspension'],
'setIrtpOptOutStatus'=>$values['setIrtpOptOutStatus'],
'setDomainContactChangeExpiryDate'=>$values['setDomainContactChangeExpiryDate'],
'nameservers'=>[
'ns1'=>$domainInfo['data']['dns1'],
'ns2'=>$domainInfo['data']['dns2'],
'ns3'=>$domainInfo['data']['dns3'],
'ns4'=>$domainInfo['data']['dns4'],
'ns5'=>$domainInfo['data']['dns5'],
]
]
];
} catch (\Exception $e) {
return ['status'=>'error','message' => 'Failed to get Domain Info:' . $e->getMessage()];
}
}
Other attributes relating to a domain are supported. More information on these can be found in the Domain Information documentation.
Resend Contact Verification Email
If supported by a registrar API, the
ResendIRTPVerificationEmail
function can be defined within a registrar module to allow end users and administrators to request the WHOIS Contact Verification emails be resent.
The standard registrar module parameters are passed to this function, errors are supported using the standard array based return as in other registrar module functions.
Example Usage
<?php
function yourmodule_ResendIRTPVerificationEmail($params)
{
$tld = $params['tld'];
$sld = $params['sld'];
$api = yourmodule_getApiClient($params);
try {
$sendRs = $api->resendWhoisVF($domain);
} catch (\Exception $e) {
return ['status'=>'error','message'=> 'Failed to resend Whois Verification Email:' . $e->getMessage()];
}
return ['status'=>'success'];
}