Module and release scope
This guide covers Openprovider 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 |
username — API username |
text | Yes | Use the account-specific value described below. |
password — API password |
secret | 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. Installation leaves the module disabled, creates no connection and contains no business configuration. Connection writes and automated renewals also start disabled.
Configure and test
Create a reseller account and enable API access. Use the API username/password for that environment, including any required source-IP allowlist. Live requests use https://api.openprovider.eu/v1beta; sandbox uses https://api.sandbox.openprovider.nl/v1beta. Sandbox accounts are separate, have limited TLD coverage and do not support domain transfers. Credentials are exchanged for a bearer token held only in module memory. Test authenticates and reads one domain; it makes no purchases or contact changes.
Select the environment, enter credentials, save and Test. Enable the module and connection separately, then enable remote writes only when ready. Give this integration only the account permissions it needs: domain/TLD/customer reads, domain creation/transfer/renew and domain updates when required. No inbound webhook is needed; domain status comes from authenticated synchronization.
Registration and transfers
Create each customer's contact handles in Openprovider first. Pass owner_handle, admin_handle, tech_handle, billing_handle in the domain tool's provider options. These are per-order values, never shared defaults. All four handles are checked through the authenticated customer endpoint before a purchase. A register also needs nameservers (at least two different hostnames) and years. Transfers need auth_code, preserve registry nameservers, and remain pending until completion. additional_data may carry registry eligibility data. Do not include premium acceptance fees: this module refuses premium registrations and premium renewals.
Example provider options (replace with real customer handles):
{"owner_handle":"AB123456-NL","admin_handle":"AB123456-NL","tech_handle":"AB123456-NL","billing_handle":"AB123456-NL"}
The TLD endpoint validates allowed terms and operation availability. The registry still makes the final eligibility decision. Special extensions require the corresponding customer/registry data; the module never invents it. Contact creation and DNS zone management are outside this registrar package.
Operations and confirmation
Supports availability, registration, inbound transfer, renewal, account synchronization, nameservers, transfer lock/unlock, and EPP retrieval. Owned-domain reads must match the exact domain and remote ID. Registration is active only after owned account readback confirms the registrant handle, active state and requested nameservers. Renewals require an advanced registry expiration date; acknowledgements and unadvanced dates remain pending. renewal_date is exposed separately as renewal_due_on; registry expiry is never replaced with a billing deadline.
Requests use fixed HTTPS endpoints, bounded responses and timeouts, and no automatic retries or redirects. A timeout after purchase dispatch is reported as submitted but unconfirmed: inspect the registrar account and synchronize before retrying. This prevents an unsafe automatic duplicate charge.
Provider documentation
- REST API and schemas: https://docs.openprovider.com/
- OpenAPI domain schema: https://docs.openprovider.com/swagger/domain.swagger.json
- Authentication: https://support.openprovider.eu/hc/en-us/articles/360025683173-Getting-started-with-Openprovider-API
- Sandbox limitations: https://support.openprovider.eu/hc/en-us/articles/8095671860114-Sandbox-Testing-Environment

