Module and release scope
This guide covers NameSRS Registrar 1.0.0, Extension API 1, from the reviewed product source. Its declared core range is 1.3.6–1.3.99. Use the matching released core and signed provider package; a version label alone does not install the required contracts. Source availability does not mean the module is bundled in every currently downloadable product, installed on your server, enabled or certified for your merchant/server account. Nothing in this guide enables a provider or changes your existing connections.
Open System → Domain registrars (newer source may group these as Payments, Domain services or Hosting services). Install the reviewed signed package through Modules & addons or the integration workspace's Install tab, enable the module separately, add an account/connection, save its own credentials, run its stated Test and explicitly enable the connection. Saving or retesting disables the connection until you enable it again. Start with the provider's test environment where supported; otherwise use an isolated account or server.
Exact connection fields
These are the fields declared by this module. Secret values are entered privately and encrypted by the application. Defaults are configuration hints, not approved live merchant settings. Internal fields are populated by the module and are not operator-editable.
| Key / label | Type | Required | Default / guidance |
|---|---|---|---|
api_key — Reseller API key |
secret | Yes | Use the account-specific value described below. |
allow_writes — Allow domain purchases and changes |
boolean | No | Default: false |
allow_automated_renewals — Allow paid-invoice automated renewals |
boolean | No | Default: false |
This package uses NameSRS's authenticated Domainname.system API. The module and write/renewal switches are disabled by default. Installation does not create an account, contact, domain or configured connection.
Configure
- Obtain a NameSRS reseller account, API key and production API access. This adapter targets the documented fixed HTTPS origin
https://api.domainname.systems; a whitelabel/private endpoint needs a separately reviewed module rather than sending your token to an arbitrary URL. - Add a registrar connection and enter the encrypted API key. Test authenticates with
GET /authenticate/login/, then reads/account/getaccountdetails/. No domain or contact is changed. The module uses bearer headers rather than deprecated credentials embedded in URLs. - Enable the connection and assign your approved TLDs. Enable domain purchases only after reviewing your account balance and registry rules. Paid-invoice automated renewal requires its own explicit switch.
- Keep provider and billing-platform renewal policies aligned. New registrations and renewals send
autorenew=0; transfer-in inherits the provider's transfer behavior and should be reviewed in its dashboard.
The provider's WHMCS module uses callbacks for its own job queue. This EmailaBiller adapter confirms by authenticated synchronization and does not publish a fake callback endpoint. NameSRS webhook integration is not required or implemented here.
Operations
| Operation | API command |
|---|---|
| Availability | POST /domain/searchdomain/ |
| Registration | POST /domain/create_domain_registration/ |
| Incoming transfer | POST /domain/create_domain_transfer/ |
| Renewal | POST /domain/update_domain_renew/ |
| Exact owned domain lookup/readback | GET /domain/domainlist/ then /domain/domaindetails/ |
| Nameservers | POST /domain/update_domain_dns/ |
| Transfer lock | POST /domain/editdomain/ |
The customer registrant is mapped into /contact/createcontact/, and the resulting contact ID is passed as ownerid. The adapter uses the owning customer's real contact details and never substitutes the reseller. input.organization_id carries a customer organization/person identifier where the registry requires one; it must be sourced from that customer. Additional registry-specific validation remains the provider's responsibility. TMCH acceptance is false unless input.tmch_acceptance is explicitly supplied; the module never agrees automatically on behalf of a customer.
Registrations and renewals support 1–10 year input terms, subject to registry rules. Transfers accept the registrar's single transfer term and the customer's authorization code. Premium availability flags are excluded from standard registration. DNSSEC, premium-price acceptance, owner trades, trustee/launch workflows and automatic transfer-code generation are outside this package. Generate transfer codes in the provider dashboard; the adapter does not guess a response field or trigger an unrequested authorization email.
Confirmation
A submitted request ID proves only acceptance. The adapter fetches fresh exact account-owned domain details and verifies active state, expiry, intended nameservers and the actual owner contact. Missing or different fields remain pending. Renewals must extend the pre-submission expiry by the entire requested term. Incoming transfers remain asynchronous; if the existing contact is retained and differs from the expected billing contact, review it explicitly rather than silently replacing its owner.
Provider timeouts after billable submission remain submitted and unconfirmed, with no automatic second request. Synchronize and inspect the registrar account before considering any retry. HTTP and provider errors are visible through sanitized diagnostics; tokens and customer data are redacted. TLS verification, timeouts, no redirects/retries, and a 2 MB uncompressed response limit apply to every request.

