A generic FOSSBilling registrar module for connecting to any domain registry that uses the EPP protocol.
This module is designed to work with both gTLD and ccTLD registries and provides a flexible foundation for EPP-based domain management in FOSSBilling.
| Registry | TLDs | Profile | Needs |
|---|---|---|---|
| Generic RFC EPP | any | ||
| AFNIC | .fr/others | FR | |
| CARNET | .hr | HR | |
| Caucasus Online | .ge | GE | |
| CentralNic | all | Set AuthInfo on Request | |
| CoCCA | all | Set AuthInfo on Request | |
| CORE/Knipp | all | ||
| Domicilium | .im | ||
| DRS.UA | all | ||
| EURid | .eu | EU | |
| GoDaddy Registry | all | ||
| Google Nomulus | all | ||
| Hostmaster | .ua | UA | |
| Identity Digital | all | ||
| IIS | .se, .nu | SE | |
| IT.COM | all | ||
| Namingo | all | ||
| NASK | .pl | PL | |
| NIC Chile | .cl | ||
| NIC Mexico | .mx | MX | |
| NIC.LV | .lv | LV | |
| .PT | .pt | PT | |
| Regtons | all | ||
| RoTLD | .ro | ||
| RyCE | all | ||
| SIDN | all | ||
| SWITCH | .ch, .li | SWITCH | Set AuthInfo on Request |
| Tucows Registry | all | ||
| Verisign | all | VRSN | |
| ZADNA | .za | ||
| ZDNS | all |
| Registry | TLDs | Profile | Status |
|---|---|---|---|
| DENIC | .de | DE | |
| DOMREG | .lt | LT | |
| FORTH-ICS | .gr, .ελ | GR | |
| FRED | .cz/any | FRED | |
| NORID | .no | NO |
| Registry | TLDs | Profile | Status |
|---|---|---|---|
| HKIRC | .hk | HK | |
| Internet.ee | .ee | EE | |
| Registro.it | .it | IT | |
| Traficom | .fr | FI |
-
Use our Module Customizer Tool to generate a fine-tuned registrar module specifically for your registry, then extract the generated archive into
/tmp. -
From the extracted archive in
/tmp, move thenamingo/directory and the synchronization scriptYourRegistryNameSync.phpinto your FOSSBilling/Namingo Registrar installation directory (for example/var/www/fossbillingor/var/www, depending on where it is installed). Move the main module fileYourRegistryName.phpinto[FOSSBilling_path]/library/Registrar/Adapter.
If this is not your first EPP module, you may skip copying the namingo/ directory, as it is shared between modules.
- Obtain a client TLS certificate for EPP access (issued by the registry or signed by a CA accepted by the registry). Place the certificate (
cert.pem) and its corresponding private key (key.pem) in your FOSSBilling installation directory. They are required for secure EPP authentication.
Rename the files (for example prefix them with the registry name) to keep them unique, and remember the file paths for configuration later. Ensure they are readable by the web server user:
chown www-data:www-data cert.pem key.pem
chmod 600 cert.pem key.pem-
Add the following cron job using
crontab -eto run the sync script every 12 hours (00:00 and 12:00):0 0,12 * * * php /var/www/YourRegistryNameSync.php. -
Within FOSSBilling, go to System -> Domain Registration -> New Domain Registrar and activate the new domain registrar.
-
Go to the Registrars tab in the admin panel and select your EPP module. Enter your registry connection details, including the EPP host, port, login credentials, and the full filesystem paths to your client TLS certificate (
cert.pem) and private key (key.pem). -
Add a new Top Level Domain (TLD) using your module from the "New Top Level Domain" tab. Make sure to configure all necessary details, such as pricing, within this tab.
- Before upgrading, note your current module settings.
- Download the updated module and repeat the installation steps to replace the existing files.
- After upgrading, verify that your module settings are still correct.
If you want to support .ge domains, this core change is required.
Edit [FOSSBilling_path]/modules/Servicedomain/Service.php (around line 349) and find $locked = $whois->getLocked();. After the closing } of that if block, add:
$privacy = $whois->getPrivacyEnabled();
if ($privacy !== null) {
$model->privacy = $privacy;
}This must be re-applied after every FOSSBilling update.
-
Multiple EPP modules conflict
- FOSSBilling does not allow multiple registrar modules that share the same internal function names.
- If you are connecting to more than one registry, you must generate each module using the Module Customizer Tool to ensure unique module names.
- Do not manually duplicate or rename module files, as this may cause function collisions or unexpected behavior.
-
Network access / allowlisting
- Ensure the server’s outbound IP(s) are allowlisted by the registry EPP endpoint (both IPv4 and IPv6, if applicable).
-
IPv6 considerations
- Confirm both sides support IPv6 if you intend to use it.
- If you encounter IPv6-related connection issues, temporarily disable IPv6 on the client side and retry.
-
EPP server access
- If you are unsure whether your server can reach the EPP endpoint, test the connection using OpenSSL:
Basic test:
openssl s_client -connect epp.example.com:700
Test with client certificate:
openssl s_client -connect epp.example.com:700 -CAfile cacert.pem -cert cert.pem -key key.pem
Replace the hostname and certificate paths as needed. These tests help diagnose network or TLS issues.
-
Generating a client TLS certificate (testing only)
- If you do not yet have a client certificate for EPP access, you can generate a temporary self-signed pair:
openssl genrsa -out key.pem 2048 openssl req -new -x509 -key key.pem -out cert.pem -days 365
For production, use a certificate issued or approved by the registry (not a self-signed certificate).
-
Registrar prefix
- Ensure the module is configured with the correct registrar prefix for your registry connection.
-
Transfer AuthInfo not returned by registry
- Some registries (e.g. CentralNic, CoCCA) may not return the transfer AuthInfo code via standard
domain:info. - If your module does not display the transfer code, enable the option “Set AuthInfo on Request” in the module configuration. This forces the module to set/generate AuthInfo when requested, so it can be displayed/managed consistently.
- Some registries (e.g. CentralNic, CoCCA) may not return the transfer AuthInfo code via standard
If the steps above do not resolve your issue, check the FOSSBilling logs and enable Error Reporting in the admin panel to display detailed error messages.
Your feedback and inquiries are invaluable to Namingo's evolutionary journey. If you need support, have questions, or want to contribute your thoughts:
-
Email: Feel free to reach out directly at help@namingo.org.
-
Discord: Or chat with us on our Discord channel.
-
GitHub Issues: For bug reports or feature requests, please use the Issues section of our GitHub repository.
We appreciate your involvement and patience as Namingo continues to grow and adapt.
If you find FOSSBilling EPP Registrar useful, consider donating:
- Donate via Stripe
- BTC:
bc1q9jhxjlnzv0x4wzxfp8xzc6w289ewggtds54uqa - ETH:
0x330c1b148368EE4B8756B176f1766d52132f0Ea8
FOSSBilling EPP Registrar is licensed under the MIT License.