Module and release scope
This guide covers Gandi Domains 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 |
|---|---|---|---|
environment — Environment |
select | Yes | Default: "sandbox" Choices: sandbox = Sandbox, live = Live |
access_token — Personal access token |
secret | Yes | Use the account-specific value described below. |
sharing_id — Billing or reseller organization ID |
text | Yes | Use the account-specific value described below. |
allow_writes — Allow domain purchases and changes |
boolean | No | Default: false |
allow_automated_renewals — Allow automated renewals |
boolean | No | Default: false |
Independent registrar package for EmailaBiller 1.3.6, installed disabled with no connection or merchant data. Remote changes and automated renewals default to disabled.
API access
Use a Gandi personal access token (Bearer authentication), scoped to the relevant organization and domain permissions. API keys using the older Apikey authentication are deprecated and are not used by this module. Enter the billing/reseller organization ID as sharing_id. A reseller organization is needed when buying a domain for a customer whose owner details differ from the billing organization. Ensure prepaid credit and billing permissions are available.
Sandbox is the default and uses https://api.sandbox.gandi.net/v5. Create separate sandbox credentials. Live uses https://api.gandi.net/v5. Test lists at most one organization domain without creating anything. Save, test and separately enable the connection; allow writes only after checking the organization and environment. No inbound webhook is required; synchronization reads the authenticated domain.
Customer and domain fields
The core supplies the owning customer's canonical input.contact. The module maps first/last name, email, street address, city, state, postcode, ISO country and international phone into Gandi's owner object. Organization is optional and selects a company contact. contact.extra_parameters supplies extra owner eligibility fields; domain-level extra_parameters may also be supplied in provider options. No operator address, company or contact is substituted for missing customer data.
Registration requires years and at least two different nameservers; transfers require auth_code and keep the current nameservers. Optional first-year mailbox offers are explicitly turned off. Premium-priced domains are refused. The domain-check and renewal-information APIs validate the requested term before payment. Unsupported registry requirements must be completed by the operator; the module never guesses them.
Supported operations
Availability, registration, transfer-in, renewal, domain synchronization, nameserver changes, transfer lock/unlock and EPP retrieval. Lock changes are PATCH requests, nameservers use PUT, and purchases use the documented POST endpoints. EPP retrieval reads the account-owned domain's authinfo; it does not reset a code silently.
Gandi commonly acknowledges writes with HTTP 202. A transfer stays pending. A registration is marked active only after fresh account readback confirms domain, registry expiry, customer owner identity and requested nameservers. A renewal is confirmed only after fresh expiry advances. Provider acknowledgement, payment acceptance and registry completion are separate states. Requests are bounded, timed out, never redirected or automatically retried. Inspect the account and synchronize before retrying a submitted but unconfirmed purchase.
Required token access
Grant domain read/check for Test and lookup; domain creation/transfer/renewal plus organization billing/prepaid access for purchases; nameserver and transfer-lock updates only if you use those actions. Token resources must include the target domains and reseller organization. Check your Gandi token interface for the current permission labels.
Provider documentation
- Domain API, fields and responses: https://api.gandi.net/docs/domains/
- Authentication and organizations: https://api.gandi.net/docs/reference/
- Sandbox API: https://api.sandbox.gandi.net/docs/
- Customer/reseller registration rules: https://docs.gandi.net/en/rest_api/migration_from_v3/direct_customers/index.html

