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 - Status that is set when a new domain name is registered and persists until the end of the next month. Also is set for existing domains every year during the expiration month (while domain is included in an active bill).
  • 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