Module and release scope
This guide covers Porkbun 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 key, live = Live key |
api_key — API key |
secret | Yes | Use the account-specific value described below. |
secret_api_key — Secret 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 automated renewals |
boolean | No | Default: false |
Standalone EmailaBiller 1.3.6 registrar, installed disabled. No provider account, credentials or business defaults are created. Writes and automated renewals also default to disabled.
Configure
Create API keys in Porkbun API Access. Use the public and secret API keys, not a password. Sandbox is the default and requires a pk1_sb_ sandbox API key; a live key cannot run in sandbox mode. Both environments use https://api.porkbun.com/api/json/v3; the provider isolates sandbox keys and responses must confirm sandbox: true.
Read permission is required for Test, availability and account-owned domain metadata. Purchase permission is required for register/renew/transfer; manage permission and per-domain API opt-in are needed for nameserver changes. Restrict keys by account, domain and source IP as appropriate. Set provider spending limits and fund prepaid credit. This module does not top up balances, charge saved cards or use crypto/direct-card payment flows. Test is an authenticated, read-only ping. No webhook is required.
Important contact limitation
The documented create/transfer endpoints do not accept a customer registrant contact object. Porkbun uses account/default contact rules. This package therefore requires account_contact_ack: true in the individual purchase's provider options for every registration or transfer. Before setting it, confirm that the provider account contacts are correct for that particular registrant. There is deliberately no global acknowledgement setting and no automatic replacement of customer contacts with operator details. If you need automatic individual customer registrant creation, choose a reseller registrar that supports it.
A registration also requires agree_to_terms: true for Porkbun's registration and automatic-renewal terms, plus at least two nameservers. These acknowledgements are per order. EPP authorization is auth_code for transfers.
{"account_contact_ack":true,"agree_to_terms":true}
Features and limits
Supports availability, account synchronization, registration, inbound transfer, minimum-term renewal and nameserver replacement. Current documented APIs register/renew only for the registry minimum duration. The module verifies minDuration, exact USD-cent price, premium exclusion, funds and term through a non-charging dry run before committing. Premium registrations, transfers and renewals are refused. Some restricted TLDs require the website. Provider quotas and spending caps still apply.
Transfers are asynchronous and stay pending. Registrations need a real order receipt, account-owned metadata and nameserver confirmation before activation. Renewals need an advanced registry expiry. The module does not claim unsupported EPP or transfer-lock endpoints: use Porkbun's console for those operations. DNS record management is separate.
No automatic retry or redirect is performed. Provider idempotency keys are unique within a purchase dispatch. If a purchase times out, inspect the account and synchronize before manually submitting again. A pending/unconfirmed purchase never becomes active from a bare SUCCESS acknowledgement.
Provider documentation
- API reference: https://porkbun.com/api/json/v3/documentation
- Domain operations and limitations: https://porkbun.com/llms/domain
- Machine-readable schemas: https://porkbun.com/api/json/v3/spec
- Key setup, permissions and sandbox: https://kb.porkbun.com/article/307-getting-started-porkbun-api

