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'];
}