We use cookies to improve your experience. Please read our cookies policy here.

×

EPP Commands

The following commands are used to register and maintain domains through our EPP system.

Login command

The login command is used to establish and authenticate a session with the EPP server. The login command must be sent to the server before any other EPP command and identifies and authenticates the tag to be used by the session. An EPP session is terminated by a logout command.

<epp:login> element

The <epp:login> element contains the following child elements:

  • A <epp:clID> element that contains the tag. See the note below for 2 character tags.
  • A <epp:pw> element that contains the EPP password for the tag. This must contain at least 14 characters, to provide increased security.
  • An optional <epp:newPW> element that contains a new password to be used for subsequent login commands. This must contain at least 14 characters, to provide increased security.
  • An element that containing the following child elements:
    • A <epp:version> element containing the protocol version to be used. Currently, this must be 1.0
    • A <epp:lang> element that contains the text response language to be used. Currently, this must be en.
  • A <epp:svcs> element containing:
  • <epp:objURI> elements which contain the namespace URIs for the objects to be used during the session. Further details on the namespace URIs are available.  It is necessary to declare the schemas for all the objects that will be manipulated during the session.
  • An optional element containing:
    • <epp:extURI> elements which contain namespace extension URIs.  It is necessary to declare the schema extensions for all the objects that will be manipulated during the session.

Note: If ‘epp’ is set as the default namespace then the ‘epp:’ prefix can be omitted.

 2 character tags

The EPP standard schema mandates that <epp:clID> elements must have between 3 and 16 characters. To login with a 2 character tag, it is necessary to prepend the tag with a ‘#’ character.

 Example – Logging in

This is an example of a log in request where only standard schemas have been declared.

<?xml version="1.0" encoding="UTF-8"?>
  <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">
    <command>
      <login>
        <clID>EXAMPLE-TAG</clID>
        <pw>more-than-13-characters</pw>
        <options>
          <version>1.0</version>
          <lang>en</lang>
        </options>
        <svcs>
           <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
           <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
           <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
        </svcs>
      </login>
      <clTRID>ABC-12345</clTRID>
    </command>
  </epp>

This is an example of a log in request where standard and extension and DNSSEC schemas have been declared.

<?xml version="1.0" encoding="UTF-8"?>
  <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">
    <command>
      <login>
        <clID>EXAMPLE-TAG</clID>
        <pw>more-than-13-characters</pw>
        <options>
          <version>1.0</version>
          <lang>en</lang>
        </options>
        <svcs>
           <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
           <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
           <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
           <svcExtension>
             <extURI>http://www.nominet.org.uk/epp/xml/std-notifications-1.2</extURI>
             <extURI>http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0</extURI>
             <extURI>http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2</extURI>
             <extURI>http://www.nominet.org.uk/epp/xml/std-release-1.0</extURI>
             <extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
             <extURI>http://www.nominet.org.uk/epp/xml/std-handshake-1.0</extURI>
             <extURI>http://www.nominet.org.uk/epp/xml/std-locks-1.0</extURI>
           </svcExtension>
        </svcs>
      </login>
      <clTRID>ABC-12345</clTRID>
    </command>
  </epp>

Logging in and changing the password for next time

<?xml version="1.0" encoding="UTF-8"?>
  <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">
    <command>
      <login>
        <clID>EXAMPLE-TAG</clID>
        <pw>more-than-13-characters</pw>
        <newPW>more-than-13-characters</newPW>
        <options>
          <version>1.0</version>
          <lang>en</lang>
        </options>
        <svcs>
           <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
           <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
           <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
        </svcs>
      </login>
      <clTRID>ABC-12345</clTRID>
    </command>
  </epp>

Response from logging in

<?xml version="1.0" encoding="UTF-8"?>
 <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>Command completed successfully</msg>
     </result>
     <trID>
       <clTRID>ABC-12345</clTRID>
       <svTRID>54321-XYZ</svTRID>
     </trID>
   </response>
 </epp>

Hello command

The hello command is used to obtain a greeting element from our server and may be used to keep your connection with our EPP server open.  Sending an EPP hello command every 59 minutes will keep your connection with our EPP server open.

A <greeting> element is sent by the server to the client and specifies the object services that the server provides, it is sent in response to a <hello> element and also on connection to the server.

An EPP <hello> element is an empty element with no child elements.

An EPP <greeting> from Nominet’s EPP server contains the following elements

  • An <svID> element containing the name of the server
  • An <svDate> element containing the server’s current date and time in UTC.
  • An element that identifies the services supported by the server. This contains the following sub elements
    • A <version> element with content 1.0 that identifies the protocol version supported by the server.
    • A <lang> element with content ‘en’ which gives the language known by the server, ‘en’.
    • <objURI> elements that contain the namespace URIs for the objects that can be manipulated in the session.
    • An optional element that identifies the service extensions supported by the server. This contains the following sub elements
      • <extURI> elements that contain the namespace extension URIs for objects that can be manipulated during the session.
  • A <dcp> (data collection policy) element that contains child elements that describe the server’s privacy policy for data collection and management. This contains the following sub-elements
  • An <access> element with a child element of <all/> to show that access is given to the client to all data.
  • A element with the following sub-elements:
    • A <purpose> sub-element with <admin/> and <prov/> child elements to define that we collect data for administrative and technical support of the provisioning system and to identify objects and inter-object relationships.
    • A <recipient> sub-element with a child element of <ours/> which declares that Nominet, the server operator, are the recipients of the collected data.
    • A <retention> sub element with an <indefinite/> child element which declares that we retain the data indefinitely.

RFC 5730 shows the full definition of the <greeting> element.

Example of a <hello> element

 <?xml version="1.0" encoding="UTF-8"?>
  <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">
    <hello/>
  </epp>

Example of a <greeting> element

The response you get from “Hello” after logging in will depend on the extensions you specified in your login command.

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
  <greeting>
    <svID>Nominet EPP server epp.nominet.org.uk</svID>
    <svDate>2018-07-24T08:18:36Z</svDate>
    <svcMenu>
      <version>1.0</version>
      <lang>en</lang>
      <objURI>http://www.nominet.org.uk/epp/xml/nom-abuse-feed-1.0</objURI>
      <objURI>http://www.nominet.org.uk/epp/xml/nom-reseller-1.0</objURI>
      <objURI>http://www.nominet.org.uk/epp/xml/nom-tag-1.0</objURI>
      <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
      <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
      <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
      <svcExtension>
        <extURI>http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.1</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/nom-data-quality-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-contact-id-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-fork-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-handshake-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-list-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-locks-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-notifications-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-notifications-1.1</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-notifications-1.2</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-release-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-unrenew-1.0</extURI>
        <extURI>http://www.nominet.org.uk/epp/xml/std-warning-1.1</extURI>
        <extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
        <extURI>urn:ietf:params:xml:ns:validate-0.1</extURI>
      </svcExtension>
    </svcMenu>
    <dcp>
      <access><all/></access>
      <statement>
        <purpose><admin/><prov/></purpose>
        <recipient><ours/></recipient>
        <retention><business/></retention>
      </statement>
    </dcp>
  </greeting>
</epp>

Logout command

A logout command is used to end a session with an EPP server. On receipt the EPP server responds and then closes the connection with the client.

<epp:logout> element

The <epp:logout> element is an empty element.

Note:  If ‘epp’ is set as the default namespace then the ‘epp:’ prefix can be omitted.

Example – Logging out

<?xml version="1.0" encoding="UTF-8"?>
  <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">
    <command>
       <logout/>
    </command>
  </epp>

Response from logging out

<?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="1500">
      <msg>
        Command completed successfully; ending session
      </msg>
    </result>
    <trID>
      <svTRID>118073</svTRID>
    </trID>
  </response>
</epp>

Check command

EPP commands allows you to delete a domain name, a host or a contact. If a domain name is associated with a host, or if a contact or host is associated with a domain name, it cannot be deleted. For further explanation of the circumstances delete can be used, see RFC 5731 for domains, RFC 5732 for hosts or RFC 5733 for contacts. You can use the associated check command to find out whether valid domains, contacts and hosts exist before performing other actions.

Domains

Use the <domain:check> command to determine whether a domain name is currently registered and to receive a hint about whether a <create> command would be successful. Further information on <domain:check> commands can be found in RFC 5731.

The <domain:check> command is subject to the Acceptable Use Policy. A check for multiple domains in one request will only succeed if you are sufficiently below your abuse limit to guarantee completing the whole request

Example of a domain check command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <check>
      <domain:check
       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>nominet.org.uk</domain:name>
      </domain:check>
    </check>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Contacts

Use the <contact:check> command to determine whether the contact identifier requested has been used within the registry. Further details on the representation of accounts and contacts can be found here and information on <contact:check> commands in RFC 5733.

Example of a contact check command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <check>
            <contact:check
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>sh8013</contact:id>
            </contact:check>
        </check>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Validating contacts

Use the <validate:check> command to validate a contact before trying to create it, thereby avoiding formatting errors or ID availability issues. More details about the command are available here.

Example of a contact validation check command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:validate="urn:ietf:params:xml:ns:validate-0.1" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
    <command>
        <check>
            <validate:check>
                <validate:contact contactType="registrant" tld="UK">
                    <validate:cd>
                        <validate:id>C-12345678_UK</validate:id>
                        <validate:postalInfo type="loc">
                            <contact:name>Firstname Lastname</contact:name>
                            <contact:org>Companyname Ltd</contact:org>
                            <contact:addr>
                                <contact:street>Teststreet 1</contact:street>
                                <contact:city>Oxford</contact:city>
                                <contact:sp>England</contact:sp>
                                <contact:pc>OX4 4DQ</contact:pc>
                                <contact:cc>GB</contact:cc>
                            </contact:addr>
                        </validate:postalInfo>
                        <validate:voice>+44.1865658754</validate:voice>
                        <validate:email>[email protected]</validate:email>
                        <validate:authInfo>
                            <contact:pw></contact:pw>
                        </validate:authInfo>
                    </validate:cd>
                </validate:contact>
            </validate:check>
        </check>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Example successful contact validation check response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>Command completed successfully</msg>
        </result>
        <resData>
            <validate:chkData xmlns:validate="urn:ietf:params:xml:ns:validate-0.1">
                <validate:cd>
                    <validate:id>C-12345678_UK</validate:id>
                    <validate:response>1000</validate:response>
                </validate:cd>
            </validate:chkData>
        </resData>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>1428246508481812281</svTRID>
        </trID>
    </response>
</epp>

Hosts

Use the <host:check> command to determine whether the host name requested has been registered. Further information on <host:check> commands is in RFC 5732.

Example of a host check command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <check>
      <host:check
       xmlns:host="urn:ietf:params:xml:ns:host-1.0">
        <host:name>ns1.nominet.org.uk</host:name>
      </host:check>
    </check>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Create command

The create command allows you to register a domain name or to create an account or nameserver object to link to domain names.

The process to register a domain name is as follows:

  • Either use an existing registrant contact or create a new one using the standard <contact:create> operation. Details on this are available in RFC 5733.
  • Create the domain name using the standard <domain:create> operation. Details on this are available in RFC 5731.
  • The registrant contact identifier should be defined in the <domain:registrant> field.
  • The nameservers can be set using <domain:hostObj> fields.
  • If the <domain:period> field is used then to register a domain for 2 years this must be set to 2y or 24m. If registering a domain for any other period, set the figure accordingly, however a registration of 9 or 10 years can only have the figure set in years.
  • The <domain:contact> fields should not be used.
  • The <domain:authInfo> field is mandatory for EPP standard but is not used by our systems.

To register a registrant account, fields must be set as follows:

  • If the registrant is an individual then the <contact:name> should contain the registrant’s name and the <contact:org> should either be omitted or identical to <contact:name>.
  • If the registrant is an organisation then the <contact:org> field should contain the registrant’s name and the <contact:name> must contain the main administrative contact for the registrant.
  • In all cases, the registrant’s name is taken from the <contact:org> field and is populated from the <contact:name> field if not present.
  • The <contact:addr> must contain the registrant’s address. This is the address that will be used for the whois.
  • The optional <contact:voice> may contain a phone number for the main administrative contact.
  • The optional <contact:fax> is ignored.
  • The <contact:email> address must contain the registrant’s email address.
  • The <contact:authInfo> element is a mandatory field for the EPP standard but is unused by our system.
  • The <contact:disclose> element should only be used when the registrant has given consent to display the registrant name and/or address on the WHOIS output.

To register a nameserver, fields must be set as follows:

  • The name given in <host:name> must not already exist for the registrar.
  • The creating registrar must be the same registrar as the parent domain name. E.g. if you want to register ns1.example.uk then the parent domain name, example.uk must be on your TAG.
  • Only a single <host:addr ip=”v4″> record is accepted per nameserver object.
  • Only a single <host:addr ip=”v6″> record is accepted per nameserver object.

Registrations can be made using only the fields provided by the standard objects. However the use of some optional fields will require an extension object. These are detailed below.

Domain extensions

The standard <domain> object can be used to specify the domain name to be registered along with the registrant account and nameservers.

The schema http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2 can be used to specify further optional domain fields. It contains the following fields for the create operation:

  • auto-bill
  • next-bill
  • notes
  • reseller

Account extensions

The standard <contact> object can be used to specify the registrant name, address, contact name, contact phone numbers and email address. Further information on this is here.

The schema http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0 can be used to specify optional account fields. It contains the following fields for the create operation:

  • trad-name
  • type
  • co-no
  • opt-out – this is a deprecated field and will be ignored. 

Example of a domain create command

<?xml version="1.0" encoding="UTF-8"?>
<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">
   <command>
     <create>
       <domain:create
         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>nominet-test100.co.uk</domain:name>
         <domain:period unit="y">2</domain:period>
         <domain:ns>
           <domain:hostObj>ns1.nominet.org.uk</domain:hostObj>
           <domain:hostObj>ns2.nominet.org.uk</domain:hostObj>
         </domain:ns>
         <domain:registrant>ab-c123456</domain:registrant>
         <domain:authInfo>
           <domain:pw>**********</domain:pw>
         </domain:authInfo>
       </domain:create>
     </create>
     <clTRID>abcde12345</clTRID>
   </command>
</epp>

Example of a contact create command

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <command>
        <create>
            <contact:create
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" 
                xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
                contact-1.0.xsd">
                <contact:id>ABCD12345</contact:id>
                <contact:postalInfo type="loc">
                    <contact:name>Firstname Lastname</contact:name>
                    <contact:org>Companyname Ltd</contact:org>
                    <contact:addr>
                        <contact:street>Teststreet 1</contact:street>
                        <contact:street>Teststreet 2</contact:street>
                        <contact:city>Oxford</contact:city>
                        <contact:sp>England</contact:sp>
                        <contact:pc>OX1 1AH</contact:pc>
                        <contact:cc>GB</contact:cc>
                    </contact:addr>
                </contact:postalInfo>
                <contact:voice>+44.1865658754</contact:voice>
                <contact:email>[email protected]</contact:email>
                <contact:authInfo>
                    <contact:pw>authinfo</contact:pw>
                </contact:authInfo>
            </contact:create>
        </create>
    </command>
</epp>

Example of a contact create command with extensions

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <command>
        <create>
            <contact:create
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" 
                xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
                contact-1.0.xsd">
                <contact:id>ABCD12345</contact:id>
                <contact:postalInfo type="loc">
                    <contact:name>Firstname Lastname</contact:name>
                    <contact:org>Companyname Ltd</contact:org>
                    <contact:addr>
                        <contact:street>Teststreet 1</contact:street>
                        <contact:street>Teststreet 2</contact:street>
                        <contact:city>Oxford</contact:city>
                        <contact:sp>England</contact:sp>
                        <contact:pc>OX1 1AH</contact:pc>
                        <contact:cc>GB</contact:cc>
                    </contact:addr>
                </contact:postalInfo>
                <contact:voice>+44.1865658754</contact:voice>
                <contact:email>[email protected]</contact:email>
                <contact:authInfo>
                    <contact:pw>authinfo</contact:pw>
                </contact:authInfo>
            </contact:create>
        </create>
        <extension>
            <contact-ext:create 
                xmlns:contact-ext="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0 contact-nom-ext-1.0.xsd">
                <contact-ext:trad-name>Trading name</contact-ext:trad-name>
                <contact-ext:type>LTD</contact-ext:type>
                <contact-ext:co-no>12345678</contact-ext:co-no>
            </contact-ext:create>
        </extension>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Example of a contact create command with disclose-org set to 1 – consent given by registrant to display name but not address

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <contact:create
       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:id>CONTACT-TC01</contact:id>
        <contact:postalInfo type="loc">
          <contact:name>John Doe</contact:name>
          <contact:org>Example Inc.</contact:org>
          <contact:addr>
            <contact:street>123 Example Dr.</contact:street>
            <contact:city>Oxford</contact:city>
            <contact:sp>Oxon</contact:sp>
            <contact:pc>OX1 1HL</contact:pc>
            <contact:cc>GB</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice x="1234">+1.7035555555</contact:voice>
        <contact:email>[email protected]</contact:email>
        <contact:authInfo>
          <contact:pw>2fooBAR</contact:pw>
        </contact:authInfo>
        <contact:disclose flag="1">
          <contact:org type="loc"/>
        </contact:disclose>
      </contact:create>
    </create>
    <clTRID>CONTACT-TC01</clTRID>
  </command>
</epp>

Example of a contact create command with disclose-addr set to 1 – consent given by registrant to display address but not name

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <contact:create
       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:id>CONTACT-TC01</contact:id>
        <contact:postalInfo type="loc">
          <contact:name>John Doe</contact:name>
          <contact:org>Example Inc.</contact:org>
          <contact:addr>
            <contact:street>123 Example Dr.</contact:street>
            <contact:city>Oxford</contact:city>
            <contact:sp>Oxon</contact:sp>
            <contact:pc>OX1 1HL</contact:pc>
            <contact:cc>GB</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice x="1234">+1.7035555555</contact:voice>
        <contact:email>[email protected]</contact:email>
        <contact:authInfo>
          <contact:pw>2fooBAR</contact:pw>
        </contact:authInfo>
        <contact:disclose flag="1">
          <contact:addr type="loc"/>
        </contact:disclose>
      </contact:create>
    </create>
    <clTRID>CONTACT-TC01</clTRID>
  </command>
</epp>

Example of a contact create command with both disclose fields set – consent given by registrant to display name and address

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <contact:create
       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:id>CONTACT-TC01</contact:id>
        <contact:postalInfo type="loc">
          <contact:name>John Doe</contact:name>
          <contact:org>Example Inc.</contact:org>
          <contact:addr>
            <contact:street>123 Example Dr.</contact:street>
            <contact:city>Oxford</contact:city>
            <contact:sp>Oxon</contact:sp>
            <contact:pc>OX1 1HL</contact:pc>
            <contact:cc>GB</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice x="1234">+1.7035555555</contact:voice>
        <contact:email>[email protected]</contact:email>
        <contact:authInfo>
          <contact:pw>2fooBAR</contact:pw>
        </contact:authInfo>
        <contact:disclose flag="1">
          <contact:org type="loc"/>
          <contact:addr type="loc"/>
        </contact:disclose>
      </contact:create>
    </create>
    <clTRID>CONTACT-TC01</clTRID>
  </command>
</epp>

Example of a host create command

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <command>
        <create>
            <host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0"
                xsi:schemaLocation="urn:ietf:params:xml:ns:host-1.0
                host-1.0.xsd">
                <host:name>ns1.nominet.org.uk</host:name>
                <host:addr ip="v4">123.123.123.123</host:addr>
            </host:create>
        </create>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Delete command

The EPP <delete> command allows the registrar to delete a domain name, a host or a contact. If a domain name is associated with a host, or if a contact or host is associated with a domain name, it cannot be deleted. For further explanation of the circumstances in which delete can be used, see RFC 5731 for domains, RFC 5732 for hosts or RFC 5733 for contacts.

Example of a delete command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <delete>
            <domain:delete
                xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
                <domain:name>nominet-test100.co.uk</domain:name>
            </domain:delete>
        </delete>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Renew command

The renew command only applies to domain names. It has no meaning for other object types.

Domains

<domain:renew> element

Standard EPP renew commands should be constructed in accordance with RFC 5731. It should be noted that:

  • An optional domain:period element exists that specifies the registration period in years (y) or months (m).
  • The current expiry date of the domain must be provided in the domain:curExpDate element.

Example of a domain renew command 

    <?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">
      <command>
        <renew>
          <domain:renew
	   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>example.co.uk</domain:name>
            <domain:curExpDate>2009-04-07</domain:curExpDate>
            <domain:period unit="y">2</domain:period>
      	  </domain:renew>
        </renew>
        <clTRID>ABC-12345</clTRID>
      </command>
    </epp>

Example successful domain renew response

    <?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="http://www.nominet.org.uk/epp/xml/epp-1.0 
     epp-1.0.xsd">
      <response>
        <result code="1000">
          <msg>Command completed successfully</msg>
        </result>
        <resData>
          <domain:renData
           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>example.co.uk</domain:name>
            <domain:exDate>2010-12-12T13:04:46</domain:exDate>
          </domain:renData>
        </resData>
        <trID>
          <clTRID>EPP-ABC-12345</clTRID>
          <svTRID>112642</svTRID>
        </trID>
      </response>
    </epp>

Unrenew command

The <u:unrenew> operation is used to reverse a renewal request made for a domain name. The u prefix represents the std-unrenew schema.

The unrenew command only applies to domain names. It has no meaning for other object types.

Domains

Unrenew commands will only be processed if the renewal invoice has not yet been generated. If the operation is successful, an email will be sent to the registrant of the domain name notifying them of the renewal reversal.

<u:unrenew> element

The <u:unrenew> element contains the following child elements:

<u:domainName> elements that contains the fully qualified name of the domain objects whose renewal is to be undone.

Example of a domain unrenew command

<?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">
   <command>
      <update>
            <u:unrenew
            xmlns:u="http://www.nominet.org.uk/epp/xml/std-unrenew-1.0"
            xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-unrenew-1.0
            std-unrenew-1.0.xsd">
             <u:domainName>example.co.uk</u:domainName>
             <u:domainName>example2.co.uk</u:domainName>
           </u:unrenew>
      </update>
      <clTRID>ABC-12345</clTRID>
    </command>
  </epp>

Example successful domain unrenew response

<?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>Command completed successfully</msg>
     </result>
     <resData>
      <domain:renData
        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>example.co.uk</domain:name>
        <domain:exDate>2013-01-02T11:56:40</domain:exDate>
      </domain:renData>
      <domain:renData
        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>example2.co.uk</domain:name>
        <domain:exDate>2013-01-02T11:56:40</domain:exDate>
      </domain:renData>
     </resData>
     <trID>
       <clTRID>ABC-12345</clTRID>
       <svTRID>265768</svTRID>
     </trID>
   </response>
 </epp>

Update command

The <update> operation allows the attributes of an object to be updated.

Domains

The <domain:update> operation is described in RFC 5731 and allows the following modifications to a domain name:

  • The <domain:registrant> field allows the domain name to be assigned to a different registrant account. This is only allowed if the new account has the same organisation name as the first.
  • Nameservers can be added and removed to the domain name
  • Statuses can be added or removed to the domain name

Modification of the auto-bill, next-bill, renew-not-required, notes and reseller fields are done using the domain-nom-ext-1.1 extension.

Example of a <domain:update> operation with extensions

<?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">
  <command>
   <update>
    <domain:update
     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>epp-example2.co.uk</domain:name>
     <domain:add>
       <domain:ns>
        <domain:hostObj>ns0.epp-example3.co.uk</domain:hostObj>
        <domain:hostObj>ns0.epp-example4.co.uk</domain:hostObj>
       </domain:ns>
       <domain:status s="clientHold" lang="en">Payment    overdue.</domain:status>
     </domain:add>
     <domain:rem>
      <domain:ns>
        <domain:hostObj>ns0.epp-example1.co.uk</domain:hostObj>
        <domain:hostObj>ns0.epp-example2.co.uk</domain:hostObj>
      </domain:ns>
     </domain:rem>
     <domain:chg>
        <domain:registrant>5689658965</domain:registrant>      
     </domain:chg>
    </domain:update>
   </update>
   <extension>
    <domain-ext:update 
     xmlns:domain-ext="http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2"
     xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2
     domain-nom-ext-1.2.xsd">
     <domain-ext:auto-bill>143</domain-ext:auto-bill>
     <domain-ext:next-bill>10</domain-ext:next-bill>
     <domain-ext:notes>notes</domain-ext:notes>
     <domain-ext:notes>notes2</domain-ext:notes>
    </domain-ext:update>
   </extension> 
  <clTRID>ABC-12345</clTRID>
 </command>
</epp>

Registrant contacts

The <contact:update> is described in RFC 5733 and allows the following fields in a registrant contact to be modified:

  • address
  • contact name
  • email address
  • contact name
  • statuses

Modifications to the trading name, organisation type and company number can done using the contact-nom-1.0 extension.

Example of a <contact:update> operation with extensions

<?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">
  <command>
   <update>
    <contact:update
     xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
     xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
     contact-1.0.xsd">
     <contact:id>my_contact</contact:id>
     <contact:add>
        <contact:status s="clientDeleteProhibited"/>
     </contact:add>
     <contact:chg>
      <contact:postalInfo type="loc">
        <contact:name>Changed main contact name</contact:name> 
        <contact:addr>
          <contact:street>10 Modified Street</contact:street>
          <contact:city>Oxford</contact:city>
          <contact:sp>Oxon</contact:sp>
          <contact:pc>OX5 5ZZ</contact:pc>
          <contact:cc>GB</contact:cc>
        </contact:addr>
       </contact:postalInfo>
     </contact:chg>
    </contact:update>
   </update>
   <extension>
    <contact-ext:update 
     xmlns:contact-ext="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0"
     xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0
     contact-nom-ext-1.0.xsd">
      <contact-ext:trad-name>Example trading name</contact-ext:trad-name>
      <contact-ext:type>LTD</contact-ext:type>
      <contact-ext:co-no>NI65786</contact-ext:co-no>
    </contact-ext:update>
   </extension> 
  <clTRID>ABC-12345</clTRID>
 </command>
</epp>

Notes

  • The <contact:org> field cannot be provided as part of a <contact:update> operation.
  • If the <contact:name> field is provided as part of a <contact:update>, the registrant name is not modified only the main admin contact name.

Nameservers

The <host:update> operation is described in RFC 5732 and allows the following modifications to a nameserver object with a given name:

  • Modify the name field.
  • Modify the ipv4 field
  • Modify the ipv6 field.
  • Add or remove statuses

Example of a <host:update> operation

<?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">
  <command>
    <update>
      <host:update
        xmlns:host="urn:ietf:params:xml:ns:host-1.0"
       xsi:schemaLocation="urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd">
        <host:name>ns1.nominet-example.co.uk</host:name>
        <host:add>
          <host:addr ip="v4">192.0.3.9</host:addr>
        <host:status s="clientUpdateProhibited"/>
      </host:add>
      <host:rem>
        <host:addr ip="v6">1080:0:0:0:8:800:200C:417A</host:addr>
      </host:rem>
      <host:chg>
       <host:name>ns2.nominet-example.co.uk</host:name>
      </host:chg>
    </host:update>
   </update>
   <clTRID>ABC-12345</clTRID>
 </command>
</epp>

Contact-id

The <contact-id:update> operation allows the contact-id associated with a Nominet account to be amended. The new value must be unique across the registry.

Example of a <contact-id:update> operation

<?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">
  <command>
    <update>
      <contact-id:update
        xmlns:contact-id="http://www.nominet.org.uk/epp/xml/std-contact-id-1.0"
        xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-contact-id-1.0 
        std-contact-id-1.0.xsd">
        <contact-id:id>S79TA01</contact-id:id>
        <contact-id:chg>
          <contact-id:id>S79TA01NEW</contact-id:id>
        </contact-id:chg>
      </contact-id:update>
    </update>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Info command

The EPP <info> command is used to retrieve information associated with an object.

Domains

The <domain:info> command will retrieve information associated with a domain and is described in RFC 5731.

Example of a <domain:info> command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <info>
            <domain:info
                xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
                <domain:name hosts="all">epp-example.co.uk</domain:name>
                <domain:authInfo>
                    <domain:pw></domain:pw>
                </domain:authInfo>
            </domain:info>
        </info>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Example of a <domain:info> response

<?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>Command completed successfully</msg>
    </result>
    <resData>
       <domain:infData
        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>epp-example.co.uk</domain:name>
         <domain:roid>7854785487-UK</domain:roid>
         <domain:status s"clientHold"/>
         <domain:registrant>S70T1</domain:registrant>
         <domain:ns>
           <domain:hostObj>ns0.epp-example2.co.uk</domain:hostObj> 
           <domain:hostObj>ns1.epp-example2.co.uk</domain:hostObj>
         </domain:ns>
         <domain:host>ns0.epp-example.co.uk</domain:host>
         <domain:host>ns1.epp-example.co.uk</domain:host>
         <domain:clID>EXAMPLE_TAG</domain:clID>
         <domain:crID>epp@epp-example.</domain:crID>
         <domain:crDate>2008-01-01T13:34:20.0Z</domain:crDate>
         <domain:upID>epp@epp-example.</domain:upID>
         <domain:upDate>2009-04-02T13:56:03.0Z</domain:upDate>
         <domain:exDate>2010-01-01T13:34:20.0Z</domain:exDate>
       </domain:infData> 
    </resData>
    <extension>
      <domain-ext:infData 
       xmlns:domain-ext="http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.1"
       xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.1 
       domain-nom-ext-1.1.xsd">
        <domain-ext:auto-bill>123</domain-ext:auto-bill>
        <domain-ext>
      </domain-ext:infData>
    </extension>
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>54322-XYZ</svTRID>
    </trID>
  </response>
</epp>

Notes

  • One or more <domain:status> elements will be included within the standard object.
  • The <domain:crID> field in the standard object will be truncated to 16 characters. The full field will be provided in a warning extension object.
  • The <domain:upID> field in the standard object will be truncated to 16 characters. The full field will be provided in a warning extension object.
  • There will be no <domain:trDate> element within the standard object.
  • There will be no <domain:authInfo> element within the standard object.

Registrant contacts

The standard <contact:info> will retrieve information associated with a registrant contact and is described in RFC 5733.

Example of a <contact:info> command

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
    xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
    epp-1.0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <command>
        <info>
            <contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
                xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
                contact-1.0.xsd">
                <contact:id>S70T1</contact:id>
            </contact:info>
        </info>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

where S70T1 is the Standard EPP ID – you retrieve this through the <domain:info> command

Example of a <contact:info> response

<?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>Command completed successfully</msg>
    </result>
    <resData>
      <contact:infData
       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
       xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
       contact-1.0.xsd">
        <contact:id>CMyContactID</contact:id>
        <contact:roid>548965487-UK</contact:roid>
        <contact:status s="linked"/>
        <contact:status s="clientDeleteProhibited"/>
        <contact:postalInfo type="loc">
          <contact:name>Mr Jones</contact:name>
          <contact:org>Company.</contact:org>
          <contact:addr>
            <contact:street>High Street</contact:street>
            <contact:city>Oxford</contact:city>
            <contact:pc>OX1 1AH</contact:pc>
            <contact:cc>GB</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice>+44.1865658754</contact:voice>
        <contact:email>[email protected]</contact:email>
        <contact:clID>EXAMPLE-TAG</contact:clID>
        <contact:crDate>2007-05-12T12:44:00Z</contact:crDate>
        <contact:upDate>2008-06-12T06:46:00Z</contact:upDate>
      </contact:infData>
    </resData>
    <extension>
      <contact-ext:infData
        xmlns:contact-ext="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0"
        xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0
        contact-nom-ext-1.0.xsd">
        <contact-ext:trad-name>Big enterprises</contact-ext:trad-name>
        <contact-ext:type>LTD</contact-ext:type>
        <contact-ext:co-no>5489549</contact-ext:co-no>
      </contact-ext:infData>
    </extension>    
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>54322-XYZ</svTRID>
    </trID>
  </response>
</epp>

Notes

  • The <contact:crID> and <contact:upID> elements in the standard object will be truncated to 16 characters. The full field will be given in a warning extension object.
  • There will be no <contact:authInfo> element.
  • There will be no <contact:trDate> element.
  • The <contact:city> and <contact:cc> fields are mandatory in the standard schema but may not be present in the database for some domain names. In this circumstance, the <contact:city> field will be ‘.’ and the <contact:cc> field ‘..’.

The optional extension schema nom-data-quality1.1 adds some additional fields regarding data quality in response to <contact:info> requests. The current implementation returns the fields for invalid data that have been manually checked by Nominet and requries action.  These fields will be returned for Accredited Channel Partners only.

  • reason: this will indicate the reason for a data quality workflow on the contact
  • dateCommenced: the date on which the contact was created or changed to trigger the data quality case
  • dateToSuspend: the date on which the domains should be suspended if the registrant data is not corrected
  • lockApplied: this will be true (Y) if any data quality lock has been set for the contact

Example EPP login using our extension schemas and the new DQ schema:

<?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">
    <command>
        <login>
            <clID>EXAMPLE-TAG</clID>
            <pw>more-than-13-characters</pw>
            <options>
                <version>1.0</version>
                <lang>en</lang>
            </options>
            <svcs>
                <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
                <svcExtension>
                    <extURI>http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2</extURI>
                    <extURI>http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0</extURI>
                    <extURI>http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1</extURI>
                </svcExtension>
            </svcs>
        </login>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Example output for a newly created contact:

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
    <response>
        <result code="1000">
            <msg>Command completed successfully</msg>
        </result>
        <resData>
            <contact:infData
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
                xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
                <contact:id>CMyContactID</contact:id>
                <contact:roid>548965487-UK</contact:roid>
                <contact:status s="ok"/>
                <contact:postalInfo type="loc">
                    <contact:name>Mr Jones</contact:name>
                    <contact:org>Company.</contact:org>
                    <contact:addr>
                        <contact:street>High Street</contact:street>
                        <contact:city>Oxford</contact:city>
                        <contact:pc>OX1 1AH</contact:pc>
                        <contact:cc>GB</contact:cc>
                    </contact:addr>
                </contact:postalInfo>
                <contact:voice>+44.1865658754</contact:voice>
                <contact:email>[email protected]</contact:email>
                <contact:clID>EXAMPLE-TAG</contact:clID>
                <contact:crID>EPP-ABC-12345</contact:crID>
                <contact:crDate>2015-05-07T13:20:04</contact:crDate>
               </contact:infData>
        </resData>
        <extension>
            <nom-data-quality:infData
                xmlns:nom-data-quality="http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1 nom-data-quality-1.1.xsd">
                <nom-data-quality:status>invalid</nom-data-quality:status>
                <nom-data-quality:reason>Registrant name and address awaiting validation</nom-data-quality:reason>
                <nom-data-quality:lockApplied>N</nom-data-quality:lockApplied>
            </nom-data-quality:infData>
        </extension>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>127349</svTRID>
        </trID>
    </response>
</epp>

Example output for a contact that has an address which hasn’t been validated (using the contact-nom-ext schema):

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
    <response>
        <result code="1000">
            <msg>Command completed successfully</msg>
        </result>
        <resData>
            <contact:infData
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
                xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
                contact-1.0.xsd">
                <contact:id>CMyContactID</contact:id>
                <contact:roid>548965487-UK</contact:roid>
                <contact:status s="ok"/>
                <contact:postalInfo type="loc">
                    <contact:name>Mr Jones</contact:name>
                    <contact:org>Company.</contact:org>
                    <contact:addr>
                        <contact:street>High Street</contact:street>
                        <contact:city>Oxford</contact:city>
                        <contact:pc>OX1 1AH</contact:pc>
                        <contact:cc>GB</contact:cc>
                    </contact:addr>
                </contact:postalInfo>
                <contact:voice>+44.1865658754</contact:voice>
                <contact:email>[email protected]</contact:email>
                <contact:clID>EXAMPLE-TAG</contact:clID>
                <contact:crID>EPP-ABC-12345</contact:crID>
                <contact:crDate>2015-05-07T13:20:04</contact:crDate>
               </contact:infData>
        </resData>
        <extension>
            <contact-nom-ext:infData
                xmlns:contact-nom-ext="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0 contact-nom-ext-1.0.xsd">
                <contact-nom-ext:type>UNKNOWN</contact-nom-ext:type>
            </contact-nom-ext:infData>
            <nom-data-quality:infData
                xmlns:nom-data-quality="http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1 nom-data-quality-1.1.xsd">
                <nom-data-quality:status>invalid</nom-data-quality:status>
                <nom-data-quality:reason>Incorrect Address</nom-data-quality:reason>
                <nom-data-quality:dateCommenced>2015-05-07T13:20:04</nom-data-quality:dateCommenced>
                <nom-data-quality:dateToSuspend>2015-06-06T13:20:04</nom-data-quality:dateToSuspend>
                <nom-data-quality:lockApplied>Y</nom-data-quality:lockApplied>
                <nom-data-quality:domainListData noDomains="2">
                    <nom-data-quality:domainName>epp-example1.co.uk</nom-data-quality:domainName>
                    <nom-data-quality:domainName>epp-example2.co.uk</nom-data-quality:domainName>
                </nom-data-quality:domainListData>
            </nom-data-quality:infData>
        </extension>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>127373</svTRID>
        </trID>
    </response>
</epp>

Notes:

  • suspensionStatus will not be included in version 1.1 of the schema
  • If a registrar that is not an Accredited Channel Partner uses version 1.1 of the schema they will receive only the dq:status field (matching the output for version 1.0)
  • dateCommenced, dateToSuspend, domainListData will only be populated (and included in infData) when the contact has been specifically marked as poor data quality (Incorrect registrant, incorrect address, incorrect registrant & address)

Hosts

The <host:info> command will retrieve information associated with a nameserver object and is described in RFC 5732.

Example of a <host:info> command

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <info>
            <host:info
                xmlns:host="urn:ietf:params:xml:ns:host-1.0">
                <host:name>ns0.epp-example.co.uk</host:name>
            </host:info>
        </info>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

Example of a <host:info> response

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <host:infData
        xmlns:host="urn:ietf:params:xml:ns:host-1.0"
        xsi:schemaLocation="urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd">
        <host:name>ns0.epp-example.co.uk.</host:name>
        <host:roid>548965487-UK</host:roid>
        <host:status s="linked"/>
        <host:status s=clientUpdateProhibited"/>
        <host:addr ip="v4">123.123.123.123</host:addr>
        <host:addr ip="v6">1080:0:0:0:8:800:200C:417B</host:addr>
        <host:clID>EXAMPLE_TAG</host:clID>
        <host:crID>epp-user</host:crID>
        <host:crDate>2008-06-12T06:46:00Z</host:crDate>
      </host:infData>
    </resData>
    <trID> 
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>116890</svTRID>
    </trID>
  </response>
</epp>

Notes

  • The <host:crID> and <host:upID> elements in the standard object will be truncated to 16 characters. The full field will be given in a warning extension object.
  • There will be no <contact:trDate> element.

Poll command

When changes take place in the registration data for domain names, we send notifications to the registrar. It will be possible for registrars to elect to receive these notifications via EPP.

If a registrar elects to receive notifications via EPP, then notifications will be placed in the message queue awaiting a poll command to retrieve them. If the message queue is not empty, then a successful response to a poll command returns the first message from the queue. This response includes a unique message identifier and a counter that gives the number of messages in the queue.

After a message has been received by the client, the client must respond to the client with an explicit acknowledgement to confirm that the message has been received. Then that message is dequeued and the next message in the queue becomes available for retrieval.

Note

To use the poll command you must have activated this notification option for your account in the Online Service. In addition, version 1.1 or subsequent schemas must be used if polling via Nominet EPP.

<epp:poll> element

The <epp:poll> element is an empty element. It has a single “op” attribute which may take the following values:

  • “req” to retrieve the first message from the server message queue.
  • “ack”, to acknowledge receipt of a message. the message identifier is defined by a msgID attribute.

<epp:resData> element

The contents of the <epp:resData> depends upon the message type being returned and is described in the documentation for each notification.

Note: If ‘epp’ is chosen as the default namespace then the ‘epp:’ prefix can be omitted.

Full list of notification responses.

Example – Polling for messages

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <poll op="req"/>
      <clTRID>ABC-12345</clTRID>
    </command>
  </epp>

Example poll response

For illustrative purposes the <resData> element is empty in this example.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
     <result code="1301">
       <msg>Command completed successfully; ack to dequeue</msg>
     </result>
     <msgQ count="5" id="12345">
       <qDate>2000-06-08T22:00:00.0</qDate>
       <msg>Domains Released Notification</msg>
     </msgQ>
     <resData>
     </resData>
     <trID>
       <clTRID>ABC-12345</clTRID>
       <svTRID>54321-XYZ</svTRID>
     </trID>
   </response>
 </epp>

Response to an acknowledgement

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
      <result code="1000">
        <msg>Command completed successfully</msg>
      </result>
      <msgQ count="4" id="12345"/>
      <trID>
        <clTRID>ABC-12346</clTRID>
        <svTRID>54322-XYZ</svTRID>
      </trID>
    </response>
  </epp>

Transfer command

If you have an accredited TAG, or are self-managed, you have the ability to transfer domain names between registrants. View full details on how to do this here.

The <transfer> command allows a registrar to request that a domain name or account object to be transferred from another registrar.

 As we operate “push” transfers requested by the current registrar, (rather than “pull” transfers requested by the target registrar), the <domain:transfer> command is not included in our standard EPP implementation.

To release a domain name to another registrar, use the Release command.

Handshake command

The handshake operation allows a registrar to accept or reject a registrar change/registrant transfer authorisation request.

<h:accept> element

The <h:accept> element is used to accept a registrar change/registrant transfer authorisation request. This element contains the following sub-elements:

  • An <h:caseId> element specifying the case-id of the authorisation request.
  • An optional <h:registrant> element specifying an account that the domains associated with the case should be placed on. Note that this is only applicable to registrar changes. A new account is created If this element is not given.

<h:reject> element

The <h:reject> element is used to reject a registrar change/registrant transfer authorisation request. This element contains the following sub-elements:

  • An <h:caseId> element specifying the case-id of the authorisation request.

Example handshake accept request

<?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">
  <command>
    <update>
      <h:accept
        xmlns:h="http://www.nominet.org.uk/epp/xml/std-handshake-1.0"
        xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-handshake-1.0 
        std-handshake-1.0.xsd">
        <h:caseId>123456</h:caseId>
        <h:registrant>EXAMPLE-REGISTRANT</h:registrant>
      </h:accept>
    </update>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example response to a successful handshake accept request

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <h:hanData
       xmlns:h="http://www.nominet.org.uk/epp/xml/std-handshake-1.0"
       xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-handshake-1.0 
       std-handshake-1.0.xsd">
        <h:caseId>6</h:caseId>
        <h:domainListData noDomains="2">
          <h:domainName>example1.co.uk</h:domainName>
          <h:domainName>example2.co.uk</h:domainName>
        </h:domainListData>
      </h:hanData>
    </resData>
    <trID>
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>104239</svTRID>
    </trID>
  </response>
</epp>

Release operation

The release operation allows a registrar to move a domain name, or account onto another tag.

The release operation is requested by enclosing an <r:release> element within an <update> command. The r prefix represents the std-release schema.

<r:release> element

The <r:release> element contains the following sub-elements:

  • Either an <r:domainName> element with the domain name to be released or an <r:registrant> element with the account to be released.
  • An <r:registrarTag> element with the tag to release the domain name to.

Example domain release request

<?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">
  <command>
    <update>
      <r:release
        xmlns:r="http://www.nominet.org.uk/epp/xml/std-release-1.0"
        xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-release-1.0 
        std-release-1.0.xsd">
        <r:domainName>epp-example.co.uk</r:domainName>
        <r:registrarTag>EXAMPLE-TAG</r:registrarTag>
      </r:release>
    </update>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example account release request

<?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">
  <command>
    <update>
      <r:release
        xmlns:r="http://www.nominet.org.uk/epp/xml/std-release-1.0"
        xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-release-1.0 
        std-release-1.0.xsd">
        <r:registrant>S75TA03</r:registrant>
        <r:registrarTag>EXAMPLE-TAG</r:registrarTag>
      </r:release>
    </update>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Notes

  • If an account is released to another tag then all of its domain names are also released.
  • If the receiving tag does not require a handshake then a response code of 1000 is returned to the client.
  • If the receiving tag does require a handshake then a response code of 1001 is returned to the client to show that further action is necessary, an example is below. 

Example response to a release request when a handshake is required by the receiving tag

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1001">
      <msg>Command completed successfully; action pending</msg>
    </result>
    <resData>
      <r:releasePending
        xmlns:r="http://www.nominet.org.uk/epp/xml/std-release-1.0"
        xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-release-1.0 
        std-release-1.0.xsd">
        Your request for a registrar change has resulted in a handshake
        request to the receiving tag. The receiving tag has up to 5 days to respond, after
        which the request will be expired. You will be notified of the success or
        failure of the registrar change.
      </r:releasePending>
    </resData>
    <trID>
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>104239</svTRID>
    </trID>
  </response>
</epp>

Fork command

The fork command allows a number of domain names on a registrant contact to be moved to a copy of that contact.
A fork is requested by enclosing an <f:fork> element within an <update> command. The f prefix represents the std-fork schema.

<f:fork> element

The <f:fork> element contains the following sub-elements:

  • An optional <f:contactId> element giving the registrant contact identifier that the domain names are to be forked from.
  • An optional <f:newContactId> element which specifies the new contact identifier for the new contact. If this is not specified then a new contact identifier will be automatically generated.
  • One or more <f:domainName> elements giving domain names to fork from the contact. This is optional if duplicating the contact and using both the <f:contactId> and <f:newContactId> elements.

If the <f:contactId> element is provided then the domain names must all be on that contact, otherwise the domain names must all be on a single contact.

Example fork request

<?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">
    <command>
      <update>
        <f:fork xmlns:f="http://www.nominet.org.uk/epp/xml/std-fork-1.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-fork-1.0 
                std-fork-1.0.xsd">
          <f:contactId>MY-CONTACT-ID</f:contactId>
          <f:newContactId>NEW-CONTACT-ID</f:newContactId>
          <f:domainName>example1.co.uk</f:domainName>
          <f:domainName>example2.co.uk</f:domainName>
          <f:domainName>example3.co.uk</f:domainName>
        </f:fork>
      </update>
      <clTRID>ABC-123</clTRID>
    </command>
  </epp>

Example fork response

<?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>Command completed successfully</msg>    
      </result>
      <resData>
        <contact:creData>
          <contact:id>NEW-CONTACT-ID</contact:id>
          <contact:crDate>2008-01-12T15:00:12</contact:crDate>
        </contact:creData>
      </resData>
    </response>
  </epp>

Notes

Details of the new contact created are included in a <contact:creData> element included in the <resData> element.

List command

A domain list operation can be requested by enclosing an <l:list> element within an <info> command. The l prefix represents the std-list schema.

The <l:list> element contains the following sub-elements:

Either:

  • <l:month> element giving the registration month to list domain names for

Or

  • <l:expiry> element giving the expiry month to list domain names for

Example domain list request

<?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">
    <command>
     <info>
      <l:list xmlns:l="http://www.nominet.org.uk/epp/xml/std-list-1.0"
              xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-list-1.0 
              std-list-1.0.xsd">
        <l:month>2012-11</l:month>
      </l:list>
     </info>
    <clTRID>ABC-12345</clTRID>
   </command>
  </epp>

Example domain list response

The following shows an example domain list response:

<?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>Command completed successfully</msg>
    </result>
    <resData>
     <list:listData
       xmlns:list="http://www.nominet.org.uk/epp/xml/std-list-1.0"
       xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-list-1.0 std-list-1.0.xsd"
       noDomains="6">
      <list:domainName>epp-example1.co.uk</list:domainName>
      <list:domainName>epp-example2.co.uk</list:domainName>
      <list:domainName>epp-example3.co.uk</list:domainName>
      <list:domainName>epp-example4.co.uk</list:domainName>
      <list:domainName>epp-example5.co.uk</list:domainName>
      <list:domainName>epp-example6.co.uk</list:domainName>
     </list:listData>
    </resData>
    <trID>
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>54322-XYZ</svTRID>
    </trID>
   </response>
  </epp>

The following is an example of a list response that contains no domains:

<?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>Command completed successfully</msg>
    </result>
    <resData>
     <list:listData
       xmlns:list="http://www.nominet.org.uk/epp/xml/std-list-1.0"
       xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-list-1.0 std-list-1.0.xsd"
       noDomains="0"/>
    </resData>
    <trID>
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>54322-XYZ</svTRID>
    </trID>
   </response>
  </epp>

Tag List command

The tag list command is used to obtain a list of all tags that accept tag changes
along with their handshake settings.  It uses the nom-tag-1.0 schema.

<tag:list> element

To obtain a list of tags, the <info> command must contain an empty <tag:list> element

<tag:listData> element

The <tag:listData> element returned in a response to a <tag:list> command
contains a <tag:infData> element for each tag.

Each <tag:infData> element contains the following child elements:

  • A <tag:registrar-tag> element giving the tag.
  • A <tag:name> element giving the company name for the tag
  • An optional <tag:trad-name> element giving the trading name for the tag.
  • A <tag:handshake> element giving the handshake setting for the tag. This is either ‘Y’ if the tag requires a handshake accepting domains onto its tag or ‘N’ if not.

Note that the list will contain more than 4000 <tag:infData> entries.

Examples

Example of a <tag:list> command

 <?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">
      <command>
        <info>
          <tag:list
           xmlns:tag="http://www.nominet.org.uk/epp/xml/nom-tag-1.0"
           xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-tag-1.0
           nom-tag-1.0.xsd"/>
       </info>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

Example of a successful <tag:list> response

 <?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>Command completed successfully</msg>
       </result>
       <resData>
         <tag:listData
           xmlns:tag="http://www.nominet.org.uk/epp/xml/nom-tag-1.0"
           xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-tag-1.0
           nom-tag-1.0.xsd">
           <tag:infData>
             <tag:registrar-tag>EXAMPLE-TAG</tag:registrar-tag>
             <tag:name>Example company name</tag:name>
             <tag:trad-name>Example trading name</tag:trad-name>
             <tag:handshake>Y</tag:handshake>
           </tag:infData>
           <tag:infData>
             <tag:registrar-tag>EXAMPLE2-TAG</tag:registrar-tag>
             <tag:name>Example2 company name</tag:name>
             <tag:handshake>N</tag:handshake>
           </tag:infData>
        </tag:listData>
       </resData>
     </response>
    </epp>

Lock command – data quality (Accredited Channel Partner tags only)

As part of the requirements for Accredited Channel Partner tags, registrars are responsible for validating their customer data. Where they are unable to validate data, registrars must suspend domain names within 30 days.

The lock affects contacts, whether it is applied by referring to the contact id or a domain associated with a particular contact.

The lock will be applied only to the specified contact.

The lock can only be applied to contacts that we have been unable to validate through our processes.

If the lock function is attempted on data that has been validated an error message will be given. If a contact is locked, you will be unable to create a new domain name for that contact.

Once you lock a registrant contact, all domains registered to it will be suspended. Once suspended, a new suspension reason will be given as “Registrar DQ Lock”

Suspended domains cannot be transferred, nor their tag changed, and they must not be renewed.

EPP lock command

Data quality lock to contact ‘MY-EPP-ID’ is applied by setting the “type” attribute to “data quality”

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">
   <command>
     <update>
          <l:lock
                xmlns:l="http://www.nominet.org.uk/epp/xml/std-locks-1.0"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-locks-1.0
                std-locks-1.0.xsd"
                object="contact"
                type="data quality">
             <l:contactId>MY-EPP-ID</l:contactId>
          </l:lock>
     </update>
     <clTRID>ABC-123</clTRID>
  </command>
</epp>

To apply the lock to a registrant contact you can specify a domain name instead of contact ID. To lock the registrant of example.co.uk

<?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">
    <command>
       <update>
         <l:lock xmlns:l="http://www.nominet.org.uk/epp/xml/std-locks-1.0"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-locks-1.0 std-locks-1.0.xsd"
                  object="contact" type="data quality">
                <l:domainName>example.co.uk</l:domainName>
         </l:lock>
       </update>
       <clTRID>ABC-12345</clTRID>
    </command>
</epp>

EPP lock command response

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0
      epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>10012531</svTRID>
    </trID>
  </response>
</epp>

EPP Unlock command

<?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">
   <command>
     <update>
          <l:unlock
                xmlns:l="http://www.nominet.org.uk/epp/xml/std-locks-1.0"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-locks-1.0
                std-locks-1.0.xsd"
                object="contact"
                type="data quality">
             <l:contactId>MY-EPP-ID</l:contactId>
          </l:unlock>
     </update>
     <clTRID>ABC-123</clTRID>
  </command>
</epp>

Lock command – investigation

The investigation lock command can be used to lock down a domain name, preventing a number of operations upon it.

Guidelines

The command must only be used when a domain name or registrant is suspected of being involved in phishing.
It must not be used for any other purposes. Please refer to the guidelines for further details.

The investigation lock command can be applied to either a domain name or a registrant contact.

Use of the command on a domain name has the following effect:

  • Nameservers are removed from the zone file. The domain name will no longer resolve.
  • Prevent any registrant transfers
  • Prevent any registrar changes
  • Prevent the domain name from being renewed.
  • Prevent any modifications to the nameservers stored for the domain name in the registry.
  • Prevent the registrant or registrar from cancelling the domain name. The domain name will be cancelled by Nominet 90 days after the lock has been activated.
  • The domain name is displayed as suspended in the whois.

Use of the command on a registrant contact has the following effect:

  • All the domain names on the contact are locked having the effect listed above.
  • Prevent any modifications on data that is displayed upon the whois.
  • Prevent any new domain names from being created on that registrant contact
  • Prevent any domain names on the registrant contact from being moved away from the registrant onto a different registrant (transfers).

Domain Lock

A domain lock operation can be requested by enclosing an <l:lock> element within an <update> command. The l prefix represents the std-locks schema.

For a domain lock the <l:lock> element has two attributes:

  • an “object” attribute which must be set to “domain”
  • a “value” attribute which must be set to the value “investigation”

and the <l:lock> element contains the following sub-elements:

  • A <l:domainName> giving the domain name to lock

Contact Lock

For a contact lock the <l:lock> element has two attributes:

  • an “object” attribute which must be set to “contact”
  • a “value” attribute which must be set to the value “investigation”

and the <l:lock> element contains the following sub-elements:

Either

  • An <l:contactId> element giving the contact to lock

or

  • An <l:domainName> element giving the name of a domain name on the contact to lock.

Example of a domain lock operation

<?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">
  <command>
   <update>
         <l:lock xmlns:l="http://www.nominet.org.uk/epp/xml/std-locks-1.0"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-locks-1.0 
                  std-locks-1.0.xsd"
                  object="domain"
                  type="investigation">
                <l:domainName>epp-example.co.uk</l:domainName>
         </l:lock>
   </update>
   <clTRID>ABC-12345</clTRID>
 </command>
</epp>

Example of a contact lock operation

<?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">
   <command>
     <update>
          <l:lock
                xmlns:l="http://www.nominet.org.uk/epp/xml/std-locks-1.0"
                xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/std-locks-1.0 
                std-locks-1.0.xsd"
                object="contact"
                type="investigation">
             <l:contactId>MY-EPP-ID</l:contactId>
          </l:lock>
     </update>
     <clTRID>ABC-123</clTRID>
  </command>
</epp>

Example of a successful response to a lock operation

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0
      epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>EPP-ABC-12345</clTRID>
      <svTRID>10012531</svTRID>
    </trID>
  </response>
</epp>

Validate command

The validated command allows Accredited Channel Partners to inform Nominet that a domain has been validated.

For EPP there is the schema, nom-data-quality-1.0.xsd which you must login with. The following EPP command can be used to validate a contact.

<?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">
    <command>
        <update>
            <contact:update
             xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
             xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
                <contact:id>ABC-12345</contact:id>
            </contact:update>
        </update>
        <extension>
            <nom-data-quality:update
             xmlns:nom-data-quality="http://www.nominet.org.uk/epp/xml/nom-data-quality-1.0"
             xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-data-quality-1.0
             nom-data-quality-1.0.xsd">
                <nom-data-quality:validate />
            </nom-data-quality:update>
        </extension>
        <clTRID>ABC-12345</clTRID>
    </command>
</epp>

This is similar to the standard update command. However, you will see below the update that there is an extension node that contains the following <nom-data-quality:validate />. Using this extension will validate the contact. No other details may be modified if this extension is provided – an error will be returned if this is attempted.

EPP will respond with the standard success response as follows.

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
    <response>
        <result code="1000">
            <msg>Command completed successfully</msg>
        </result>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>114072</svTRID>
        </trID>
    </response>
</epp>

*This command applies to Accredited Channel Partners only

Reseller commands

There are a number of commands and operations available to use EPP to manage your reseller accounts. Resellers can be added to your Nominet registrar account and linked to domain names. Reseller details are added to the WHOIS output for the domain name also used in welcome emails and renewal reminders that are sent by Nominet. More information about resellers and how reseller data is used is available.

Commands available in Nominet EPP for creating and manipulating reseller data are:

  • Reseller Create
  • Reseller Delete
  • Reseller Info
  • Reseller List
  • Reseller Update

Schemas are available for implementation of EPP reseller management operations.

Reseller Create command

The reseller create command is used to define a new reseller on your tag.  It uses the nom-reseller-1.0 schema.

<reseller:create> element

The <reseller:create> contains the following child elements:

  • A <reseller:reference> element. This contains your unique reference for the new reseller.
  • A <reseller:tradingName> element. This is the trading name of the reseller.
  • A <reseller:url> element. This is the URL for the reseller that customers will be directed to for support or further information about the reseller.
  • An optional <reseller:email> element.This is an email contact for the reseller.
  • An optional <reseller:voice> element. This is a telephone number contact for the reseller.

Reference, trading name and URL are mandatory fields and either an email or a telephone number must be supplied for each reseller.

A more detailed description of the expected values for these elements is available.

Example of a <reseller:create> command

<?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">
     <command>
       <create>
          <reseller:create
           xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
           xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
           nom-reseller-1.0.xsd"/>
            <reseller:reference>MY-RESELLER</reseller:reference>
            <reseller:tradingName>Reseller Company Ltd</reseller:tradingName>
            <reseller:url>http://www.my-reseller.co.uk</reseller:url>
            <reseller:email>[email protected]</reseller:email>
            <reseller:voice>+44.1865123456</reseller:voice>
          </reseller:create>
       </create>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

Example of a successful <reseller:create> response

 <?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>Command completed successfully</msg>
        </result>
        <trID>
          <clTRID>EPP-ABC-12345</clTRID>
          <svTRID>10012531</svTRID>
        </trID>
      </response>
 </epp>

Reseller Delete command

The reseller delete command is used to remove a reseller from your tag.  It uses the nom-reseller-1.0 schema.

<reseller:delete> element

The <reseller:delete> contains the following child elements:

  • A <reseller:reference> element: this is your unique reference specified when the reseller was created.

When a reseller is deleted links to the reseller will be removed from all associated domains.

Example of a <reseller:delete> command

 <?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">
      <command>
        <delete>
          <reseller:delete
           xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
           xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
           nom-reseller-1.0.xsd"/>
            <reseller:reference>MY-RESELLER</reseller:reference>
          </reseller:delete>
       </delete>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

Example of a successful <reseller:delete> response

 <?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>Command completed successfully</msg>
        </result>
        <trID>
          <clTRID>EPP-ABC-12345</clTRID>
          <svTRID>10012531</svTRID>
        </trID>
      </response>
   </epp>

Reseller Info command

The reseller info command returns all information associated with a reseller on your tag.  It uses the nom-reseller-1.0 schema and the data is returned in a <reseller:infData> element.

<reseller:info> element

The <reseller:info> must contains the following child elements:

  • A <reseller:reference> element. This contains your unique reference for the reseller.

<reseller:infData> element

The <reseller:infData> contains the following child elements:

  • A <reseller:reference> element. This contains your unique reference for the reseller.
  • A <reseller:tradingName> element. This is the trading name of the reseller.
  • A <reseller:url> element. This is the URL for the reseller that customers will be directed to for support or further information about the reseller.
  • An optional <reseller:email> element. This is an email contact for the reseller.
  • An optional <reseller:voice> element. This is a telephone number contact for the reseller.

Example of a <reseller:info> command

 <?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">
      <command>
        <info>
          <reseller:info
           xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
           xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
           nom-reseller-1.0.xsd"/>
            <reseller:reference>MY-RESELLER</reseller:reference>
          </reseller:info>
       </info>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

Example of a successful <reseller:info> response

 <?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>Command completed successfully</msg>
        </result>
        <resData>
          <reseller:infData
            xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
            xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0 
            nom-reseller-1.0.xsd">
              <reseller:reference>MY-RESELLER</reseller:reference>
              <reseller:tradingName>My Reseller Company Ltd</reseller:tradingName>
              <reseller:url>http://www.my-reseller.co.uk</reseller:url>
              <reseller:email>[email protected]</reseller:email>
          </reseller:infData>
        </resData>
      </response>
   </epp>

Reseller List command

The reseller list command returns information about all resellers on your tag.  It uses the nom-reseller-1.0 schema and the data is returned in a <reseller:listData> element.

<reseller:list> element

The <reseller:list> element does not have any child elements and has a single attribute:

  • An optional “fields” attribute: this indicates which fields are to be returned in the response. If this attribute is not set then only a list of the reseller references on your tag will be returned. If fields is set to “all” then a list of reseller:infData elements will be returned.

<reseller:listData> element

The <reseller:listData> will contain one of the following child elements for each reseller on your tag:

  • A <reseller:reference> element.
  • A <reseller:infData> element: this contains detailed information about the reseller – see “Reseller Info” for more details.

Example of a <reseller:list> command

This command will return detailed information about all resellers on a tag:

 <?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">
      <command>
        <info>
          <reseller:list
            xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
            xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
            nom-reseller-1.0.xsd"
            fields="all">
          </reseller:list>
       </info>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

Example of a successful <reseller:list> response

The following shows an example reseller list response where <reseller:fields> was set to “all”:

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
   <response>
     <result code="1000">
       <msg>Command completed successfully</msg>
     </result>
     <resData>
       <reseller:listData
         xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
         xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
         nom-reseller-1.0.xsd"
         count="2">
          <reseller:infData
            xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
            xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
            nom-reseller-1.0.xsd">
              <reseller:reference>MY-RESELLER-1</reseller:reference>
              <reseller:tradingName>My Reseller Company #1 Ltd</reseller:tradingName>
              <reseller:url>http://www.my-reseller1.co.uk</reseller:url>
              <reseller:email>[email protected]</reseller:email>
              <reseller:voice>+441234567890</reseller:voice>
          </reseller:infData>
          <reseller:infData
            xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
            xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
            nom-reseller-1.0.xsd">
              <reseller:reference>MY-RESELLER-2</reseller:reference>
              <reseller:tradingName>My Reseller Company #2 Ltd</reseller:tradingName>
              <reseller:url>http://www.my-reseller2.co.uk</reseller:url>
              <reseller:email>[email protected]</reseller:email>
          </reseller:infData>
      </reseller:listData>
     </resData>
   </response>
 </epp>

The following shows an example reseller list response where <reseller:fields> was not set

<?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="http://www.nominet.org.uk/epp/xml/epp-1.0 epp-1.0.xsd">
   <response>
     <result code="1000">
       <msg>Command completed successfully</msg>
     </result>
     <resData>
       <reseller:listData
         xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
         xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
         nom-reseller-1.0.xsd"
         count="3">
           <reseller:reference>MY-RESELLER-1</reseller:reference>
           <reseller:reference>MY-RESELLER-2</reseller:reference>
           <reseller:reference>MY-RESELLER-3</reseller:reference>
       </reseller:listData>
     </resData>
   </response>
 </epp>

Reseller Update command

The reseller update command is used to modify the attributes of an existing reseller on your tag.  It uses the nom-reseller-1.0 schema.

<reseller:update> element

The <reseller:update> element contains the following child elements:

  • A <reseller:reference> element. This contains your unique reference for the reseller.
  • An optional <reseller:tradingName> element. This is the trading name of the reseller.
  • An optional <reseller:url> element. This is the URL for the reseller that customers will be directed to for support or further information about the reseller.
  • An optional <reseller:email> element.This is an email contact for the reseller.
  • An optional <reseller:voice> element. This is a telephone number contact for the reseller.

If the email element or the voice element is empty then this will indicate that the existing value should be cleared. Before the update operation is processed the state of the modified reseller will be validated and the operation will fail if any of the validation rules have been broken.

Example of a <reseller:update> command

 <?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">
      <command>
        <update>
          <reseller:update
           xmlns:reseller="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0"
           xsi:schemaLocation="http://www.nominet.org.uk/epp/xml/nom-reseller-1.0
           nom-reseller-1.0.xsd"/>
            <reseller:reference>MY-RESELLER</reseller:reference>
            <reseller:tradingName>Reseller Company Ltd</reseller:tradingName>
            <reseller:url>http://www.my-reseller.co.uk</reseller:url>
            <reseller:email>[email protected]</reseller:email>
            <reseller:voice>+44.1865123456</reseller:voice>
          </reseller:update>
       </update>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

Example of a successful <reseller:update> response

 <?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>Command completed successfully</msg>
        </result>
        <trID>
          <clTRID>EPP-ABC-12345</clTRID>
          <svTRID>10012531</svTRID>
        </trID>
      </response>
   </epp>

Minerva House, Edmund Halley Road, Oxford Science Park, OX4 4DQ, United Kingdom