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:
- reseller – to link domains, hosts and contacts to reseller accounts.
- 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:
| Field | Description | Visible to non-sponsoring registrar without Transfer Authorisation code when not publicly disclosed by policy or disclosure fields? |
|---|---|---|
| org:id | The unique organisation EPP ID which will be used to link the organisation object to other objects. | Yes |
| org:roid | The unique repository object identifier, over time, for the organisation object. | Yes |
| org:role | Roles 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:status | The 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:parentID | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. | |
| org:postalInfo | The postal address of the organisation. | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. |
| org:voice | The telephone number of the organisation. | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. |
| org:fax | Fax number of the organisation. | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. |
| org:email | Email address of the organisation. | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. |
| org:url | The URL for the organisation. | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. |
| org:contact | Contacts for the organisation | Yes, for organisation types “reseller” and “privacyproxy” as they are intended to be public information. |
| org:clID | The EPP login ID that controls the organisation object. | Yes |
| org:crID | The EPP login ID for that created the organisation object. | Yes |
| org:crDate | The create date of the organisation. | Yes |
| org:upID | The EPP login ID for that updated the organisation object. | Yes |
| org:upDate | The update date of the organisation. | Yes |
Organisation commands
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>reseller987</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>reseller123</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>reseller987</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>reseller987</org:id>
<org:roid>reseller987-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>reseller987</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:add | org:rem | org:chg | Comments | |
| role type | Yes | Yes | No | |
| role status | Not currently supported | Not currently supported | No | We 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. |
| status | No additional statuses currently supported | No additional statuses currently supported | No | We do not currently support any org statuses other than “ok”. |
| contact | Not currently supported | Not currently supported | No | Contacts are not currently supported. Attempts to add them may not error, but no data submitted for this data point will be saved. |
| parentId | No | No | Not currently supported | |
| postalInfo name addr street city sp pc cc | No | No | Yes | |
| voice | No | No | Yes | |
| fax | No | No | Yes | |
| No | No | Yes | ||
| url | No | No | Yes |
CONTACTS
CREATE
INFO
UPDATE
HOSTS
CREATE
An example create host command with organisation extension:
<?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="v4">192.0.2.29</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">reseller9876</orgext:id>
<orgext:id role="privacyproxy">privacyproxy9876</orgext:id>
</orgext:create>
</extension>
<clTRID>ABC-12345</clTRID>
</command>
</epp>
An example successful create host 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>
<host:creData xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>ns9876.testexamplens123.com</host:name>
<host:crDate>2026-03-30T11:20:02.976Z</host:crDate>
</host:creData>
</resData>
<trID>
<clTRID>ABC-12345</clTRID>
<svTRID>1957304270202084801</svTRID>
</trID>
</response>
</epp>
INFO
Example 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>ns9876.testexamplens123.com</host:name>
</host:info>
</info>
<clTRID>ABC-12346</clTRID>
</command>
</epp>
Example 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>
<host:infData xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>ns9876.testexamplens123.com</host:name>
<host:roid>H42217456-UK</host:roid>
<host:status s="ok"/>
<host:clID>nom_monitor</host:clID>
<host:crID>nom_monitor</host:crID>
<host:crDate>2026-03-30T11:20:02.976Z</host:crDate>
</host:infData>
</resData>
<extension>
<orgext:infData xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"/>
</extension>
<trID>
<clTRID>ABC-12346</clTRID>
<svTRID>1957305569345805765</svTRID>
</trID>
</response>
</epp>
UPDATE
DOMAINS
CREATE
INFO
UPDATE
Minerva House, Edmund Halley Road, Oxford Science Park, OX4 4DQ, United Kingdom