Transfer

EPP <transfer> command allows a client to manage requests to transfer the sponsorship of a domain name. RFC-3731

There are some restrictions regarding domain name transfer:

  • serverTransferProhibited - Set for newly registered domains until the domain has been renewed at least once, and when a domain name is locked for editing (because of payment or legal issues).

  • domain:pw - Authentication key is valid only for 7 days. New key will be generated using domain:info command or You can create Your own key using domain:update command.

Note

In order to test <transfer> command, see sandbox documentation here!

Transfer REQUEST operation.

Request operation is only used by gaining registrars.
This operation is used to initiate sponsoring registrar change for a domain name.
Domain nameserver technical records will remain unchanged, unless instructed otherwise by <lvdomain:transfer> extension (second example below).
Transfer requests will be automatically approved if the losing side (current registrar) will not respond (accept or reject the request) within 5 days.

Client request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  <command>
    <transfer op="request">
      <domain:transfer>
        <domain:name>transfer-accept-testuser-1.lv</domain:name>
        <domain:authInfo>
          <domain:pw>transfer-accept-testuser-1.lv</domain:pw>
        </domain:authInfo>
      </domain:transfer>
    </transfer>
    <clTRID>5de52339104fa</clTRID>
  </command>
</epp>

Client request and host transfer example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  <command>
    <transfer op="request">
      <domain:transfer>
        <domain:name>transfer-accept-testuser-1.lv</domain:name>
        <domain:authInfo>
          <domain:pw>transfer-accept-testuser-1.lv</domain:pw>
        </domain:authInfo>
      </domain:transfer>
    </transfer>
    <extension>
      <lvdomain:transfer>
        <lvdomain:ns>
          <lvdomain:hostAttr>
            <lvdomain:hostName>ns3.dns.lv</lvdomain:hostName>
          </lvdomain:hostAttr>
          <lvdomain:hostAttr>
            <lvdomain:hostName>ns4.dns.lv</lvdomain:hostName>
          </lvdomain:hostAttr>
        </lvdomain:ns>
      </lvdomain:transfer>
    </extension>
    <clTRID>5de52339104fa</clTRID>
  </command>
</epp>

Server response example:

Success:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg lang="en">Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>5de52339104fa</clTRID>
      <svTRID>LVNIC-20191202-31b3c6c4fc6f3119757ec5605410c28a-2</svTRID>
    </trID>
  </response>
</epp>

Invalid auth code:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="2202">
      <msg lang="en">Authorization code is not valid</msg>
    </result>
    <trID>
      <clTRID>5de52339104fa</clTRID>
      <svTRID>LVNIC-20191202-b18585d4c1e5c33d663a2a7e34ce73f4-2</svTRID>
    </trID>
  </response>
</epp>

Transfer informative QUERY operation.

Query operation can be used by both gaining and losing registrar.
This operation is used to gain information about Transfer status.

Client request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  <command>
    <transfer op="query">
      <domain:transfer>
        <domain:name>transfer-accept-ignored-4.lv</domain:name>
      </domain:transfer>
    </transfer>
    <clTRID>5de532c118a31</clTRID>
  </command>
</epp>

Server response example:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg lang="en">Command completed successfully</msg>
    </result>
    <resData>
      <domain:trnData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd">
        <domain:name>transfer-accept-ignored-4.lv</domain:name>
        <domain:trStatus>pending</domain:trStatus>
        <domain:reID>TestUser2</domain:reID>
        <domain:reDate>2019-12-02T16:44:09+02:00</domain:reDate>
        <domain:acID>TestUser</domain:acID>
        <domain:acDate>2019-12-08T00:00:00+02:00</domain:acDate>
      </domain:trnData>
    </resData>
    <trID>
      <clTRID>5de532c118a31</clTRID>
      <svTRID>LVNIC-20191202-478047c152ec417a80a945e7930b5294-2</svTRID>
    </trID>
  </response>
</epp>

Transfer CANCEL operation.

Cancel operation is only used by gaining registrar.
This operation cancels already requested transfer, see Transfer REQUEST operation.
If Cancel operation has been executed, then a new auth code is created.

Client request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  <command>
    <transfer op="cancel">
      <domain:transfer>
        <domain:name>transfer-ignored-testuser-5.lv</domain:name>
      </domain:transfer>
    </transfer>
    <clTRID>5de53a27ccdd2</clTRID>
  </command>
</epp>

Server response example:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg lang="en">Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>5de53a27ccdd2</clTRID>
      <svTRID>LVNIC-20191202-84f9309bf1612ea08c39e0986c45e1ae-2</svTRID>
    </trID>
  </response>
</epp>

Transfer APPROVE operation.

Approve operation is only used by losing registrar.
This operation approves requested domain transfer.

Client request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  <command>
    <transfer op="approve">
      <domain:transfer>
        <domain:name>transfer-away-testuser-4.lv</domain:name>
      </domain:transfer>
    </transfer>
    <clTRID>5de53b2778e47</clTRID>
  </command>
</epp>

Server response example:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg lang="en">Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>5de53b2778e47</clTRID>
      <svTRID>LVNIC-20191202-84f9309bf1612ea08c39e0986c45e1ae-2</svTRID>
    </trID>
  </response>
</epp>

Transfer REJECT operation.

Reject operation is only used by losing registrar.
This operation rejects requested domain transfer, e.g., Evidence of fraud.

Client request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  <command>
    <transfer op="reject">
      <domain:transfer>
        <domain:name>transfer-away-idn-ļā-testuser-4.lv</domain:name>
      </domain:transfer>
    </transfer>
    <clTRID>5de53a72cd42e</clTRID>
  </command>
</epp>

Server response example:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg lang="en">Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>5de53a72cd42e</clTRID>
      <svTRID>LVNIC-20191202-84f9309bf1612ea08c39e0986c45buje-2</svTRID>
    </trID>
  </response>
</epp>

Common server responses:

These answers are common for query, cancel, approve and reject operations.

Error responses will contain only <result> and <trID> elements:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="2201">
      <msg lang="en">Not authorized to perform requested operation</msg>
    </result>
    <trID>
      <clTRID>5de7942318ff8</clTRID>
      <svTRID>LVNIC-20191202-cef600a9987cb1636d8f219c15bdfc8e-2</svTRID>
    </trID>
  </response>
</epp>
Success 1000: Command completed successfully
Error 2201: Not authorized to perform requested operation
Error 2202: Authorization code is not valid
Error 2301: Object not pending transfer
Error 2303: Object does not exist