Everyone

Domain Transfers

How to handle inbound domain transfers into Commerce and outbound transfers away from Commerce, including EPP codes and registrar lock.

Last updated 1776211200
  • Transfer Out
  • Transfer Status Reference
  • Related
  • Overview

    Commerce handles two types of domain transfers:

    • Transfer in — a client brings an existing domain from another registrar into Commerce's management.
    • Transfer out — a client moves their domain to a registrar outside of Commerce.

    Transfer In

    Prerequisites

    Before starting a transfer, the client must ensure:

    1. The domain is at least 60 days old (ICANN rule).
    2. The domain is unlocked at the current registrar (transfer lock off).
    3. They have the EPP/auth code from the current registrar.
    4. The domain has not been transferred or renewed in the last 60 days.

    Transfer Order Flow

    1. Client goes to domain search or directly to /client/order/domain?action=transfer.
    2. Client enters the domain name, selects Transfer, and provides the EPP code.
    3. An order and invoice are created for the transfer fee.
    4. Client pays the invoice.
    5. TransferDomainJob is dispatched.

    TransferDomainJob

    1. Calls transfer(domain, eppCode, contacts) on the active registrar module.
    2. Creates a domains record with status = pending.
    3. The registrar initiates the transfer with the current registrar — this typically takes 5–7 days.
    4. During the wait: commerce:sync-domain-statuses (daily 05:00) polls the registrar for transfer progress.
    5. When the transfer completes: status updates to active, expiry_date is set.

    The transfer period cannot be accelerated from Commerce. The current registrar controls the timeline.

    Transfer Failure

    If the registrar rejects the transfer (wrong EPP code, domain locked, etc.):

    • TransferDomainJob logs the failure in the provisioning log.
    • Domain status stays pending.
    • Admin receives a notification.

    To retry: Admin → Services → [domain service] → Actions → Transfer (dispatches a new job). Ensure the client has corrected the EPP code or removed the lock first.

    Transfer Out

    Commerce does not programmatically initiate transfer-out at the registrar. The process is manual from the client's perspective:

    Steps for Transfer Out

    1. Unlock the domain — Client or admin toggles the transfer lock off at Admin → Domains → [domain] or /client/domains/{domain}.
    2. Get the EPP code — Click Get EPP Code. The code is fetched from the registrar via getEppCode() and shown once.
    3. Client takes the code to their new registrar and initiates the transfer there.
    4. The current registrar (Commerce's registrar) approves the outgoing transfer (usually automatic or via email confirmation to the registrant contact).
    5. Once the transfer completes at the registrar, commerce:sync-domain-statuses will detect the domain as gone and update the status to transferred_away.

    Important Notes

    • EPP codes are not stored in Commerce — they are fetched fresh from the registrar each time.
    • EPP codes expire — typically within 3–14 days depending on the registrar. If the code expires before the client uses it, they need to request a new one.
    • Unlock and EPP code request should happen in the same session, just before initiating the transfer at the new registrar.

    Transfer Status Reference

    Status Meaning
    pending Transfer initiated, waiting for completion
    active Transfer completed successfully
    transferred_away Domain successfully left this registrar
    cancelled Transfer was cancelled or rejected

    Related