All domain commands: (check) (create) (delete) (info) (modify) (transfer) (renew) (undelete) (privacy) (autorenew)
Updating a domain name involves, adding, changing or deleting information that is associated with the domain name. That is why the domain:update
command allows for <add>
, <chg>
or <rem>
elements. An example of all elements is found below.
Not all elements can be added or removed. For example a domain:registrant
can only be changed, because it is a mandatory field and there is only one of it allowed.
In the <extension>
part of the EPP command, <add>
, <chg>
and <rem>
elements are allowed.
To update a domain you use the update->domain:update command. Please refer to the XSD files to see which elements are allowed where. The following example has all the supported update elements and the DNSSEC parts.
<?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>test-update-domain-12345.com</domain:name>
<domain:chg>
<domain:registrant>MTR-0000000002</domain:registrant>
</domain:chg>
<domain:rem>
<domain:status s="clientHold"></domain:status>
<domain:contact type="admin">MTR-0000000002</domain:contact>
<domain:ns>
<domain:hostObj>ns2.metaregistrar.nl</domain:hostObj>
</domain:ns>
</domain:rem>
<domain:add>
<domain:status s="clientTransferProhibited"></domain:status>
<domain:contact type="admin">MTR-0000000002</domain:contact>
<domain:ns>
<domain:hostObj>ns3.metaregistrar.com</domain:hostObj>
</domain:ns>
</domain:add>
</domain:update>
</update>
<extension>
<secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
<secDNS:rem>
<secDNS:keyData>
<secDNS:flags>257</secDNS:flags>
<secDNS:protocol>3</secDNS:protocol>
<secDNS:alg>8</secDNS:alg>
<secDNS:pubKey>old key</secDNS:pubKey>
</secDNS:keyData>
</secDNS:rem>
<secDNS:add>
<secDNS:keyData>
<secDNS:flags>257</secDNS:flags>
<secDNS:protocol>3</secDNS:protocol>
<secDNS:alg>8</secDNS:alg>
<secDNS:pubKey>new key</secDNS:pubKey>
</secDNS:keyData>
</secDNS:add>
</secDNS:update>
</extension>
<clTRID>mtr-1234</clTRID>
</command>
</epp>
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="1000">
<msg>Command completed successfully</msg>
</result>
<trID>
<svTRID>MTR-asdfghjklasdfghjkl</svTRID>
<clTRID>MTR-12345</clTRID>
</trID>
</response>
</epp>
However an update may not be supported or something else might go wrong. In this case I mistyped the clientHold status as clientHolddd. In this case the error message contains 2 parts:"Parameter value range error" a semicolon and the second part which describes what is wrong. Other errors are possible. Please check the RFC for all possible errors.
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="2004">
<msg>Parameter value range error; Addition of clientHold status is not allowed</msg>
</result>
<trID>
<svTRID>MTR-asdfghjklasdfghjkl</svTRID>
<clTRID>MTR-12345</clTRID>
</trID>
</response>
</epp>
For some registries, the auth code of a domain name is only valid for a limited time period. For these registries, you can request our API to generate a new authcode by issuing a domain:update command with 'RESET' as authcode. Please find this in the following example.
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<command>
<update>
<domain:update>
<domain:name>documentationdomain.eu</domain:name>
<domain:chg>
<domain:authInfo>
<domain:pw><![CDATA[RESET]]></domain:pw>
</domain:authInfo>
</domain:chg>
</domain:update>
</update>
<clTRID>5a7c48c4ec13b</clTRID>
</command>
</epp>