Organisation objects and commands

We will be introducing Organisation objects defined in RFC8543 and the related extension RFC8544 in the second testbed release for the .UK transition but we plan to support them more widely across our registries in the future. Role values for organisation objects are defined within the IANA Extensible Provisioning Protocol (EPP) Organization Role Values registry.

We will initially support registrars creating organisations with one or more of the following roles:

  1. reseller – to link domains, hosts and contacts to reseller accounts.
  2. privacyproxy – for identifying data related to proxy providers.

We will display the data in RESELLER and PRIVACYPROXY objects on the RDAP output for the registry for domains utilising them.

Resellers

Where a domain, host or contact object is created by a reseller the object should be linked by a registrar with RFC8544 to the reseller organisation object so that appropriate reseller information will be displayed on the Registration Data Directory Services output. This will enable a wholesale registrar to identify which reseller has the rights to make requests in relation to the domain and to ensure we can publish reseller contact details within the RDDS.

Please note resellers are bespoke per registrar and the transition of a domain between registrars will result in the reseller being removed from related domains and sub-ordinate hosts, and the newly cloned contact object will not retain the reseller link.

Proxy Providers

To comply with a need to identify contact data belonging to a proxy provider rather than an underlying registrant or other contact, registrars should link only the contact object to a proxy provider; this ensures we have clarity that the data held within the contact object is not the true beneficiary but a proxy on their behalf.

Organisation Object

An organisation object is made up of the following data points, further details can be found in RFC8543:

FieldDescriptionVisible to non-sponsoring registrar without Transfer Authorisation code when not publicly disclosed by policy or disclosure fields?
org:idThe unique organisation EPP ID which will be used to link the organisation object to other objects.Yes
org:roidThe unique repository object identifier, over time, for the organisation object.Yes
org:roleRoles the organisation holds and includes:
org:type
org:status
org:roleID
Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:statusThe status of the object – i.e. if it is linked.Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:parentIDYes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:postalInfoThe postal address of the organisation.Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:voiceThe telephone number of the organisation.Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:faxFax number of the organisation.Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:emailEmail address of the organisation.Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:urlThe URL for the organisation.Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:contactContacts for the organisationYes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information.
org:clIDThe EPP login ID that controls the organisation object.Yes
org:crIDThe EPP login ID for that created the organisation object.Yes
org:crDateThe create date of the organisation.Yes
org:upIDThe EPP login ID for that updated the organisation object.Yes
org:upDateThe update date of the organisation.Yes

Organisation commands

Below are example commands for managing Organisation objects as a sponsoring registrar.

CHECK

The org:check command can check for availability of one or more organisation IDs at the same time.

An example check command:

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

An example 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>
            <org:chkData xmlns:org="urn:ietf:params:xml:ns:epp:org-1.0">
                <org:cd>
                    <org:id avail="false">reseller123</org:id>
                </org:cd>
                <org:cd>
                    <org:id avail="true">reseller456</org:id>
                </org:cd>
            </org:chkData>
        </resData>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>1950426811540181145</svTRID>
        </trID>
    </response>
</epp>

CREATE

The org:create command creates a new organisation object if the org:id is available.

An example create command:

<?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">
    <command>
        <create>
            <org:create xmlns:org="urn:ietf:params:xml:ns:epp:org-1.0">
                <org:id>reseller456</org:id>
                <org:role>
                    <org:type>reseller</org:type>
                </org:role>
                <org:postalInfo type="int">
                    <org:name>Test Org 123</org:name>
                    <org:addr>
                        <org:street>123 Example Street</org:street>
                        <org:city>Oxford</org:city>
                        <org:pc>OX4 5AD</org:pc>
                        <org:cc>GB</org:cc>
                    </org:addr>
                </org:postalInfo>
                <org:postalInfo type="loc">
                    <org:name>Test Org 123</org:name>
                    <org:addr>
                        <org:street>123 Example Street</org:street>
                        <org:city>Oxford</org:city>
                        <org:pc>OX4 5AD</org:pc>
                        <org:cc>GB</org:cc>
                    </org:addr>
                </org:postalInfo>
                <org:voice x="1234">+1.3467945014</org:voice>
                <org:fax x="6666">+1.5467945015</org:fax>
                <org:email>[email protected]</org:email>
                <org:url>https://organization.example</org:url>
                <org:contact type="billing">billing123</org:contact>
                <org:contact type="admin">admin123</org:contact>
            </org:create>
        </create>
        <clTRID>c4787c31-6c73-4751-b4ea-26875083c432</clTRID>
    </command>
</epp>

An example successful create 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>
            <org:creData xmlns:org="urn:ietf:params:xml:ns:epp:org-1.0">
                <org:id>reseller456</org:id>
                <org:crDate>2026-03-11T11:55:18.664Z</org:crDate>
            </org:creData>
        </resData>
        <trID>
            <clTRID>c4787c31-6c73-4751-b4ea-26875083c432</clTRID>
            <svTRID>1950427774535602331</svTRID>
        </trID>
    </response>
</epp>

INFO

The org:info command returns information about the organisation object for a given org:id.

An example info command:

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

An example info 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>
            <org:infData xmlns:org="urn:ietf:params:xml:ns:epp:org-1.0">
                <org:id>reseller456</org:id>
                <org:roid>reseller456-QXJ7djsu</org:roid>
                <org:role>
                    <org:type>reseller</org:type>
                </org:role>
                <org:status>ok</org:status>
                <org:postalInfo type="int">
                    <org:name>Test Org 123</org:name>
                    <org:addr>
                        <org:street>123 Example Street</org:street>
                        <org:city>Oxford</org:city>
                        <org:pc>OX4 5AD</org:pc>
                        <org:cc>GB</org:cc>
                    </org:addr>
                </org:postalInfo>
                <org:postalInfo type="loc">
                    <org:name>Test Org 123</org:name>
                    <org:addr>
                        <org:street>123 Example Street</org:street>
                        <org:city>Oxford</org:city>
                        <org:pc>OX4 5AD</org:pc>
                        <org:cc>GB</org:cc>
                    </org:addr>
                </org:postalInfo>
                <org:voice x="1234">+1.3467945014</org:voice>
                <org:fax x="6666">+1.5467945015</org:fax>
                <org:email>[email protected]</org:email>
                <org:url>https://organization.example</org:url>
                <org:clID>15681</org:clID>
                <org:crID>15681</org:crID>
                <org:crDate>2026-03-11T11:59:01.178853Z</org:crDate>
                <org:upID>15681</org:upID>
                <org:upDate>2026-03-11T17:20:06.122574Z</org:upDate>
            </org:infData>
        </resData>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>1950457457721479375</svTRID>
        </trID>
    </response>
</epp>

UPDATE

The org:update command allows updates to certain fields to be made to an organisation object.

An example update command:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <command>
       <update>
         <org:update
           xmlns:org="urn:ietf:params:xml:ns:epp:org-1.0">
           <org:id>reseller456</org:id>
           <org:add>
             <org:role>
               <org:type>privacyproxy</org:type>
             </org:role>
           </org:add>
           <org:rem>
             <org:role>
              <org:type>reseller</org:type>
            </org:role>
           </org:rem>
           <org:chg>
              <org:postalInfo type="loc">
                  <org:name>Privacy Proxy 123</org:name>
              </org:postalInfo>
           </org:chg>
         </org:update>
       </update>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

An example successful update 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>
            <org:update xmlns:org="urn:ietf:params:xml:ns:epp:org-1.0">
                <org:id>reseller987</org:id>
            </org:update>
        </resData>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>1950496869457072456</svTRID>
        </trID>
    </response>
</epp>

Below are organisation data points and whether they can be added, removed or changed with the respective commands.

org:addorg:remorg:chgComments
role
type
YesYesNo
role
status
Not currently supportedNot currently supportedNoWe do not currently support role statuses. Attempts to add or remove this value, or the inclusion of it in an org:create command, will result in an error.
statusNo additional client statuses currently supportedNo additional client statuses currently supportedNoWe do not currently support any client org statuses.
contactNot currently supportedNot currently supportedNoContacts are not currently supported. Attempts to add them may not error, but no data submitted for this data point will be saved.
parentIdNoNoNot currently supported
postalInfo
name
addr
street
city
sp
pc
cc
NoNoYes
voiceNoNoYes
faxNoNoYes
emailNoNoYes
urlNoNoYes

Linking Organisations to other objects

Once an Organisation object has been created, it can be linked to a host, contact or domain by the sponsoring registrar, either at creation or later through an update command.

An organisation role must be specified, and an object can only have at most one linked organisation of a given role type. The allowed role types are reseller and privacyproxy.

CONTACTS

CREATE

An example create command for a contact object with a linked reseller organisation:

<?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>contact123</contact:id>
           <contact:postalInfo type="int">
             <contact:name>John Doe</contact:name>
             <contact:org>Example Inc.</contact:org>
             <contact:addr>
               <contact:street>123 Example Dr.</contact:street>
               <contact:street>Suite 100</contact:street>
               <contact:city>Dulles</contact:city>
               <contact:sp>VA</contact:sp>
               <contact:pc>20166-6503</contact:pc>
               <contact:cc>US</contact:cc>
             </contact:addr>
           </contact:postalInfo>
           <contact:voice x="1234">+1.7035555555</contact:voice>
           <contact:fax>+1.7035555556</contact:fax>
           <contact:email>[email protected]</contact:email>
           <contact:authInfo>
             <contact:pw></contact:pw>
           </contact:authInfo>
           <contact:disclose flag="0">
             <contact:voice/>
             <contact:email/>
           </contact:disclose>
         </contact:create>
       </create>
    <extension>
      <orgext:create
        xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
        <orgext:id role="reseller">reseller123</orgext:id>
      </orgext:create>
    </extension>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

INFO

An example info command response on a contact object with an associated organisation object:

<?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>
            <contact:infData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>contact987</contact:id>
                <contact:roid>C42221825-UK</contact:roid>
                <contact:status s="ok"/>
                <contact:status s="linked"/>
                <contact:postalInfo type="int">
                    <contact:name>John Doe</contact:name>
                    <contact:org>Example Inc.</contact:org>
                    <contact:addr>
                        <contact:street>123 Example Dr.</contact:street>
                        <contact:street>Suite 100</contact:street>
                        <contact:city>Dulles</contact:city>
                        <contact:sp>VA</contact:sp>
                        <contact:pc>20166-6503</contact:pc>
                        <contact:cc>US</contact:cc>
                    </contact:addr>
                </contact:postalInfo>
                <contact:voice x="1234">+1.7035555555</contact:voice>
                <contact:fax>+1.7035555556</contact:fax>
                <contact:email>[email protected]</contact:email>
                <contact:clID>UKGLOBAL</contact:clID>
                <contact:crID>UKGLOBAL</contact:crID>
                <contact:crDate>2026-04-08T10:43:41.879Z</contact:crDate>
            </contact:infData>
        </resData>
        <extension>
            <orgext:infData xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
                <orgext:id role="reseller">reseller123</orgext:id>
            </orgext:infData>
        </extension>
        <trID>
            <clTRID>ABC-12345</clTRID>
            <svTRID>1960592511160295152</svTRID>
        </trID>
    </response>
</epp>

UPDATE

An example update command to change the linked reseller organisation on a contact:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <command>
       <update>
         <contact:update
          xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
           <contact:id>contact123</contact:id>
         </contact:update>
       </update>
     <extension>
       <orgext:update
         xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
         <orgext:chg>
           <orgext:id role="reseller">reseller456</orgext:id>
         </orgext:chg>
       </orgext:update>
     </extension>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

In order to change the organisation for a given role on a contact, you must either submit a change command as above, or a remove command followed by an add command, for the organisation. Submitting a command containing both an add and a remove operation for the same organisation role will result in an error response.

HOSTS

CREATE

An example create host command with a linked reseller organisation:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <command>
       <create>
         <host:create
          xmlns:host="urn:ietf:params:xml:ns:host-1.0">
           <host:name>ns9876.testexamplens123.com</host:name>
           <host:addr ip="v4">192.0.2.2</host:addr>
           <host:addr ip="v6">1080:0:0:0:8:800:200C:417A</host:addr>
         </host:create>
       </create>
       <extension>
        <orgext:create
           xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
           <orgext:id role="reseller">reseller123</orgext:id>
         </orgext:create>
       </extension>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

INFO

An example info response for a host object with a linked reseller organisation:

<?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>
            <host:infData xmlns:host="urn:ietf:params:xml:ns:host-1.0">
                <host:name>ns9876.testexamplens123.com</host:name>
                <host:roid>H42221823-UK</host:roid>
                <host:status s="ok"/>
                <host:status s="linked"/>
                <host:clID>UKGLOBAL</host:clID>
                <host:crID>UKGLOBAL</host:crID>
                <host:crDate>2026-04-08T10:43:22.210Z</host:crDate>
            </host:infData>
        </resData>
        <extension>
            <orgext:infData xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
                <orgext:id role="reseller">reseller123</orgext:id>
            </orgext:infData>
        </extension>
        <trID>
            <clTRID>ABC-12346</clTRID>
            <svTRID>1960618068740675670</svTRID>
        </trID>
    </response>
</epp>

UPDATE

An example update command to a host object to change the linked reseller:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <command>
       <update>
         <host:update
          xmlns:host="urn:ietf:params:xml:ns:host-1.0">
           <host:name>ns1.example.net</host:name>
         </host:update>
       </update>
     <extension>
       <orgext:update
         xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
         <orgext:chg>
           <orgext:id role="reseller">reseller456</orgext:id>
         </orgext:chg>
       </orgext:update>
     </extension>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

In order to change the organisation for a given role on a host, you must either submit a change command as above, or a remove command followed by an add command, for the organisation. Submitting a command containing both an add and a remove operation for the same organisation role will result in an error response.

DOMAINS

CREATE

An example domain create command containing a linked reseller organisation:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <domain:create
        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>orgextexample987.uk</domain:name>
        <domain:period unit="y">1</domain:period>
        <domain:ns>
          <domain:hostObj>ns1.example.net</domain:hostObj>
        </domain:ns>
        <domain:registrant>contact123</domain:registrant>
        <domain:authInfo>
          <domain:pw></domain:pw>
        </domain:authInfo>
      </domain:create>
    </create>
    <extension>
      <orgext:create
        xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
        <orgext:id role="reseller">reseller123</orgext:id>
      </orgext:create>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

INFO

An example response for a info command on a domain with an linked reseller organisation:

<?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>
            <domain:infData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
                <domain:name>orgextexample987.uk</domain:name>
                <domain:roid>D42221826-UK</domain:roid>
                <domain:status s="ok"/>
                <domain:registrant>contact987</domain:registrant>
                <domain:ns>
                    <domain:hostObj>ns1.example.net</domain:hostObj>
                </domain:ns>
                <domain:clID>UKGLOBAL</domain:clID>
                <domain:crID>UKGLOBAL</domain:crID>
                <domain:crDate>2026-04-08T10:44:22.018Z</domain:crDate>
                <domain:exDate>2027-04-08T10:44:22.018Z</domain:exDate>
            </domain:infData>
        </resData>
        <extension>
            <orgext:infData xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
                <orgext:id role="reseller">reseller987</orgext:id>
            </orgext:infData>
        </extension>
        <trID>
            <clTRID>ABC-12346</clTRID>
            <svTRID>1960557111553301146</svTRID>
        </trID>
    </response>
</epp>

UPDATE

An example update command to change the linked reseller organisation on a domain:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <command>
       <update>
         <domain:update
          xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
           <domain:name>orgextexample987.uk</domain:name>
         </domain:update>
       </update>
     <extension>
       <orgext:update
         xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
         <orgext:chg>
           <orgext:id role="reseller">reseller987</orgext:id>
         </orgext:chg>
       </orgext:update>
     </extension>
       <clTRID>ABC-12345</clTRID>
     </command>
   </epp>

In order to change the organisation for a given role on a domain, you must either submit a change command as above, or a remove command followed by an add command, for the organisation. Submitting a command containing both an add and a remove operation for the same organisation role will result in an error response.

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