Ascio WHMCS module


Github repository:


Commandline installation

git clone ascio
cd ascio
php install.php


Configuring the plugin

Configuring TLDs

You can use all TLDs that don't require special parameters. Others need a TLD-Plugin

Messaging - polling and callbacks

To configure the perfect messaging you need to create a cron-job with polling.php. Additionally you need to contact partnerservice, and tell them your callback-url. For example: Callback URL

This is the output when you provide no parameters (for testing):

Something unexpected happened: object(Exception)#7 (7) {
  string(34) "Please provide callback parameters"
  string(154) "exception 'Exception' with message 'Please provide callback parameters' in /var/www/whmcs/modules/registrars/ascio/callbacks.php:17
Stack trace:
#0 {main}"
  string(53) "/var/www/whmcs/modules/registrars/ascio/callbacks.php"
  array(0) {

Having both messaging types ensures a fast and secure realtime messaging. When a callback arrives via HTTP-Get this is done

It is recommended that you whitelist our callback-ip so only Ascio can send status-messages.

Ascio DNS

Creating new plugin modules (developer instuctions)

You can overwrite all protected/public methods of the Request class, for example:

Please look here for some examples.

class de extends Request {	
	public function transferDomain($params=false) {
		$params["regperiod"] = 0 ;
		return parent::transferDomain($params);
	public function getEPPCode($params) {
		$characters = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789+-/*";
		$params["eppcode"] = Tools::generateEppCode(12, $characters);
		return $params;
	protected function mapToRegistrant($params) {
		$contact = parent::mapToRegistrant($params);
		$regNr1 = $params["additionalfields"]["Tax ID"];
		$regNr2 = $contact["custom"]["RegistrantNumber"];
		$contact["RegistrantNumber"] = $regNr1 ? $regNr1 : $regNr2;
		return $contact;
	protected function mapToAdmin($params) {
		$contact = parent::mapToAdmin($params);
		if(!$contact["custom"]["Fax"]) $contact["Fax"] = $contact["Phone"];
		return $contact;
	protected function mapToTech($params) {
		$contact = parent::mapToAdmin($params);
		if(!$contact["custom"]["Fax"]) $contact["Fax"] = $contact["Phone"];
		return $contact;

This is the example of the .de module. In the method mapToRegistrant the VAT is taken from the custom-field of the user, or from the order-parameters. The EPP-Code is generated with DENIC rules.

Additional domain fields

WHMCS doesn't allow to store the TLD-Fields in the plugin. So the parameters need to be inserted manually into the includes/additionaldomainfields.php file. The parameters that are missing can be inserted from this file: Please look at the .nl TLD to see how these fields are referenced inside the TLD-module

Supported WHMCS features

The Ascio WHMCS-plugin supports these features:

These TLDs are supported with TLD-plug-in:

A plug-in exists for these TLDs: