Home / Module Development / Creating Registrar Modules

Creating Registrar Modules

Guide to creating custom domain registrar modules

Creating a Domain Registrar Module

Step 1: Create Module Directory

/modules/registrars/yourregistrar/

Step 2: Create module.json

{
    "name": "yourregistrar",
    "display_name": "Your Registrar",
    "description": "Domain registrar integration",
    "version": "1.0.0"
}

Step 3: Create Registrar Class

Create YourregistrarRegistrar.php implementing ModuleInterface.

Required Actions

Registrar modules should implement these actions:

  • check_domain: Check domain availability
  • register_domain: Register a new domain
  • renew_domain: Renew an existing domain
  • transfer_domain: Transfer domain from another registrar
  • get_domain_info: Get domain information (expiry, status, etc.)

Example Implementation

public function execute($action, $params = []) {
    switch ($action) {
        case 'check_domain':
            return $this->checkDomain($params);
        case 'register_domain':
            return $this->registerDomain($params);
        case 'renew_domain':
            return $this->renewDomain($params);
        case 'transfer_domain':
            return $this->transferDomain($params);
        default:
            return ['success' => false, 'error' => 'Unknown action'];
    }
}

private function checkDomain($params) {
    $domain = $params['domain'] ?? '';
    
    // Call registrar API to check availability
    // Return: ['success' => true, 'available' => true|false, 'price' => 0.00]
    return [
        'success' => true,
        'available' => true,
        'price' => 10.99
    ];
}

Example: Domainbox Registrar

See /modules/registrars/domainbox/DomainboxRegistrar.php for a complete reference implementation.