Webhook event types
"domain.purchased": Indicates that the domain order creation has been completed."domain.registered": The registrar has registered a purchased domain. Sent once per domain, whether or notdisableConnectis set. See Registration events."domain.registration_timeout": Entri could not confirm the registration of a purchased domain within 48 hours of the purchase. Sent once per domain. See Registration events."domain.purchase.dns_setup.failed": The registrar rejected the DNS records Entri tried to set up for a purchased domain. Sent once per domain. See DNS setup failure."domain.transfer.in.initiated": Only applicable for Entri Sell Enterprise. An inbound domain transfer has been initiated by the user."domain.transfer.in.started": Only applicable for Entri Sell Enterprise. The inbound domain transfer has been accepted and is now in progress at the registry level."domain.transfer.in.ack": Only applicable for Entri Sell Enterprise. The inbound domain transfer has been acknowledged by the registry."domain.transfer.in.failed": Only applicable for Entri Sell Enterprise. The inbound domain transfer has failed."domain.transfer.out.initiated": Only applicable for Entri Sell Enterprise. An outbound domain transfer away from Entri has been initiated."purchase.error": Indicates an error during the domain purchase process."purchase.user_aborted": Only applicable for IONOS. The user closed the IONOS checkout. This can happen after the purchase already completed, so if you also receiveddomain.purchasedfor the same domain, the domain was purchased. Carries the same payload aspurchase.error."purchase.confirmation.expired": The purchase confirmation has expired (abandoned flow).
Registration events
Placing an order is not the same as owning a working domain. After the order goes through, the registrar still has to register the domain, and it can hold or reject an order, for example after a fraud review or when the account is blocked.domain.purchased tells you the order exists. domain.registered and domain.registration_timeout tell you how the registration ended, so you can let your user know before they find out that the domain does not work.
Registration events are currently sent for GoDaddy and IONOS purchases. They are not sent for Squarespace purchases yet.
Event sequence
For each purchase, the events arrive in this order:domain.purchased: once per order.purchased_domainslists every domain in the order.domain.registered: once per purchased domain, as soon as Entri confirms that the domain is registered and resolving in DNS. This is usually within minutes, and can take longer while the registrar reviews the order.domain.added: once per purchased domain, after Entri applies the DNS records from your configuration. See Connect events.
domain.registered does not wait for the DNS records to be applied, so it normally arrives before domain.added. It is sent with disableConnect set to true or false. With disableConnect: true Entri configures no records for you, so use domain.registered as the signal that the domain is ready for your own DNS setup. domain.added works as before and should not be read as a registration confirmation.
Registration timeout
Entri checks a purchased domain’s registration for 48 hours after the purchase. The window is fixed and cannot be configured. If the registration still cannot be confirmed by then, Entri sendsdomain.registration_timeout and stops checking the domain. No domain.registered or domain.added follows for that domain, and a domain gets either domain.registered or domain.registration_timeout, never both.
A timeout usually means the registrar did not complete the order. Let your user know that the domain is not active yet, and contact Entri support with the id of the domain.purchased webhook so we can check with the registrar.
Receiving registration events
Both events are selected per application, like every other event (see Choosing which events you receive). If you already chose your Sell events, turn ondomain.registered and domain.registration_timeout under Application → Webhooks to start receiving them.
Sample payload
domain.registration_timeout has the same shape with "type": "domain.registration_timeout". In both events, domain and purchased_domains name the single domain the event is about, even when the order contained several domains. The id is unique to the domain and the event type, so a redelivered event keeps its id. The status fields are always exempt because these events are not about DNS records.
DNS setup failure
After a purchased domain is registered, Entri applies the DNS records from your configuration. If the registrar rejects those records, Entri sendsdomain.purchase.dns_setup.failed instead of domain.added. This happens when the records do not fit what the registrar accepts, for example a CNAME record on the root domain (@). Retrying the same records does not help.
The domain itself is registered; only its DNS setup failed. Check the records in your configuration, and contact Entri support with the id of the domain.purchased webhook if you need help.
domain.purchase.dns_setup.failed is sent once per purchased domain, for GoDaddy and IONOS purchases. Turn it on under Application → Webhooks to receive it. It has the same shape as the registration events sample payload, with "type": "domain.purchase.dns_setup.failed".
Payload fields
-
purchased_domains: An array of domains that were purchased during the transaction. This field is only relevant for Entri Sell. Example: -
free_domain: Indicates whether the domain was obtained through a free domain flow. Possible values:true: The domain was free.false: The domain was not free.
Status fields
Thedomain.purchased event and its follow-up propagation events carry the same status fields as Connect webhooks (propagation_status, dkim_status, redirection_status, setup_type). See Connect events for their values. Three of them report the add-on products configured on the purchased domain:
-
secure_status: The status of SSL certificate provisioning through Entri Secure. Possible values:"pending": The DNS records required by Entri Secure have not propagated yet, so the certificate has not been issued."success": The records propagated and the SSL certificate was provisioned."failed": The records did not propagate within 72 hours. Sent together with thedomain.propagation.timeoutevent."exempt": Entri Secure is not enabled for the application or does not apply to this flow. This is always the value onpurchase.errorandpurchase.confirmation.expiredevents.
-
power_status: The status of the advanced features configuration through Entri Power. Possible values:"pending": The DNS records required by Entri Power have not propagated yet."success": The records propagated and Entri Power is configured for the domain."failed": The records did not propagate within 72 hours. Sent together with thedomain.propagation.timeoutevent."exempt": Entri Power is not enabled for the application or does not apply to this flow. This is always the value onpurchase.errorandpurchase.confirmation.expiredevents.
-
monitor_status: The status of the domain’s enrollment in Entri Monitor. Only present when the flow has records to monitor, which happens when themonitorconfig option istrueand Monitor is enabled for your account. Unlikesecure_statusandpower_status, this field is never"exempt": it is simply omitted from the payload when Monitor does not apply. Possible values:"pending": The monitored records have not propagated yet, so the domain is not enrolled in Monitor."success": The records propagated and the domain is now monitored."failed": The records did not propagate within 72 hours. Sent together with thedomain.propagation.timeoutevent.
The product-specific
domain.secure.* and domain.power.* events reuse the same field names with a different vocabulary, "active" or "inactive", to report whether the product is currently running on the domain. See Secure events and Power events.Browser callback events
The Entri Sell modal emits browser events you can listen for to react when a purchase completes or the modal is closed. Each is awindow event whose event.detail carries the payload described below.
onSuccess Callback Event
Fired when the user reaches the Congratulations screen after a successful purchase. Use it to capture a definitive success signal and the jobId that identifies the flow.
The IONOS, Squarespace, and GoDaddy Sell flows all fire
onSuccess.Sample usage:
JavaScript
Sample event.detail object response:
JSON
Event details object description
The
onSuccess event is the recommended source to capture the jobId for subsequent server-side operations (e.g., retrieving the last webhook or checking the flow status).onEntriClose Callback Event
Fired as soon as the modal is closed, with the latest status of the flow.
Sample usage:
JavaScript
Sample event.detail object response:
JSON
Event details object description
The
onEntriClose payload does not include freeDomain. To know whether a completed purchase used a free-domain flow, read freeDomain from the onSuccess event. When the modal is closed without a completed purchase, success is false and lastStatus is omitted.
