How Grandfathered domains behave on EPP.

Sometimes the registry operator will grandfather domains at a certain pricepoint after price changes.

In this case a special price is configured on the Centralnic platform that will ensure these domains renew at the agreed pricepoint. 

This will affect how the domains behave on EPP. The frames below outline that behavior:

FAQ

What class will the domain return?

The domain will return premium on the renew check.

If the domain is also on the premium list, the create check will also return premium class

<?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>
<resData>
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:cd>
<domain:name avail="0">grandfatheredtest.help</domain:name>
<domain:reason>in use</domain:reason>
</domain:cd>
</domain:chkData>
</resData>
<extension>
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>create</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Registration Fee" refundable="1" grace-period="P5D">1000.00</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>renew</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Renewal Fee" refundable="1" grace-period="P5D">100.00</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>transfer</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Renewal Fee" refundable="1" grace-period="P5D">100.00</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>restore</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Restore Fee" refundable="0">30.00</fee:fee>
<fee:class>standard</fee:class>
</fee:cd>
</fee:chkData>
</extension>
<trID>
<clTRID>dom-chk-ENARBgGtOXfRPWWQl35zHA-111122576-7012a7</clTRID>
<svTRID>CNIC-3393AE1395CA7287D9EB222D0DA754EDCADECB20D15A62E768639616958</svTRID>
</trID>
</response>
</epp>

If the domain is NOT on the premium list, the create check will return standard

<?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>
<resData>
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:cd>
<domain:name avail="0">grandfatheredtest.help</domain:name>
<domain:reason>in use</domain:reason>
</domain:cd>
</domain:chkData>
</resData>
<extension>
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>create</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Registration Fee" refundable="1" grace-period="P5D">22.00</fee:fee>
<fee:class>standard</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>renew</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Renewal Fee" refundable="1" grace-period="P5D">100.00</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>transfer</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Renewal Fee" refundable="1" grace-period="P5D">100.00</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfatheredtest.help</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>restore</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Restore Fee" refundable="0">30.00</fee:fee>
<fee:class>standard</fee:class>
</fee:cd>
</fee:chkData>
</extension>
<trID>
<clTRID>dom-chk-ENARBgGtOXfRPWWQl35zHA-111122576-7012a7</clTRID>
<svTRID>CNIC-3393AE1395CA7287D9EB222D0DA754EDCADECB20D15A62E768639616958</svTRID>
</trID>
</response>
</epp>

Do I need to specify the fee extension to renew this domain?

No, but you can

You can renew the domain with or without the fee extension. If you provide the fee extension, you must give the correct price, or the command will fail.

If you don't provide the fee extension, the response will contain the price of the renewal action.

Example command/response frame without the fee extension:

 

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 xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>grandfathered.site</domain:name>
<domain:curExpDate>2025-03-06</domain:curExpDate>
<domain:period unit="y">1</domain:period>
</domain:renew>
</renew>
<clTRID>dom-renew-ENARBgGtOXfRPWWQl35zHA-152427671-524022</clTRID>
</command>
</epp>

RESPONSE

 

<?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>
<resData>
<domain:renData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>grandfathered.site</domain:name>
<domain:exDate>2026-03-06T23:59:59.0Z</domain:exDate>
</domain:renData>
</resData>
<extension>
<fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
<fee:currency>USD</fee:currency>
<fee:fee>50.00</fee:fee>
</fee:renData>
<fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:currency>USD</fee:currency>
<fee:fee>50.00</fee:fee>
</fee:renData>
</extension>
<trID>
<clTRID>dom-renew-ENARBgGtOXfRPWWQl35zHA-152427671-524022</clTRID>
<svTRID>CNIC-D8F11AD29EA108C0CE62BC469FB61B161B41B18F0488007945820FDD4DC</svTRID>
</trID>
</response>
</epp>

 

Example command/response frame with the fee extension and correct price:

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 xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>grandfathered.site</domain:name>
<domain:curExpDate>2026-03-06</domain:curExpDate>
<domain:period unit="y">1</domain:period>
</domain:renew>
</renew>
<extension>
<fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:currency>GBP</fee:currency>
<fee:fee>42.20</fee:fee>
</fee:renew>
</extension>
<clTRID>dom-renew-ENARBgGtOXfRPWWQl35zHA-103316791-7ff25f</clTRID>
</command>
</epp>

 

RESPONSE

 

<?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>
<resData>
<domain:renData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>grandfathered.site</domain:name>
<domain:exDate>2027-03-06T23:59:59.0Z</domain:exDate>
</domain:renData>
</resData>
<extension>
<fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
<fee:currency>GBP</fee:currency>
<fee:fee>42.20</fee:fee>
</fee:renData>
<fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:currency>GBP</fee:currency>
<fee:fee>42.20</fee:fee>
</fee:renData>
</extension>
<trID>
<clTRID>dom-renew-ENARBgGtOXfRPWWQl35zHA-103316791-7ff25f</clTRID>
<svTRID>CNIC-72ED80C6F7FCAC380F39F49C9A4F25D57CE7CB187107B8F78526D3D30AA</svTRID>
</trID>
</response>
</epp>

 

Example command/response frame with the fee extension and incorrect price:

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 xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>grandfathered.site</domain:name>
<domain:curExpDate>2027-03-06</domain:curExpDate>
<domain:period unit="y">1</domain:period>
</domain:renew>
</renew>
<extension>
<fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:currency>GBP</fee:currency>
<fee:fee>20.00</fee:fee>
</fee:renew>
</extension>
<clTRID>dom-renew-ENARBgGtOXfRPWWQl35zHA-111712463-c58aa1</clTRID>
</command>
</epp>

 

RESPONSE

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="2004">
<msg>Supplied fee of 20GBP does not match actual fee of 42.2GBP </msg>
</result>
<trID>
<clTRID>dom-renew-ENARBgGtOXfRPWWQl35zHA-111712463-c58aa1</clTRID>
<svTRID>CNIC-B734C65574E5D99D1BF4EFFE897F654DFDB47F8093491570716937FB985</svTRID>
</trID>
</response>
</epp>

 

Example command/response of a check command on a grandfathered domain:

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>
<check>
<domain:check xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>grandfathered.site</domain:name>
</domain:check>
</check>
<extension>
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:domain>
<fee:name>grandfathered.site</fee:name>
<fee:command>create</fee:command>
<fee:period unit="y">1</fee:period>
</fee:domain>
<fee:domain>
<fee:name>grandfathered.site</fee:name>
<fee:command>renew</fee:command>
<fee:period unit="y">1</fee:period>
</fee:domain>
<fee:domain>
<fee:name>grandfathered.site</fee:name>
<fee:command>transfer</fee:command>
<fee:period unit="y">1</fee:period>
</fee:domain>
<fee:domain>
<fee:name>grandfathered.site</fee:name>
<fee:command>restore</fee:command>
<fee:period unit="y">1</fee:period>
</fee:domain>
</fee:check>
</extension>
<clTRID>dom-chk-ENARBgGtOXfRPWWQl35zHA-111122576-7012a7</clTRID>
</command>
</epp>

 

RESPONSE 

<?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>
<resData>
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:cd>
<domain:name avail="0">grandfathered.site</domain:name>
<domain:reason>in use</domain:reason>
</domain:cd>
</domain:chkData>
</resData>
<extension>
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">
<fee:cd>
<fee:name>grandfathered.site</fee:name>
<fee:currency>GBP</fee:currency>
<fee:command >create</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Registration Fee" refundable="1" grace-period="P5D">16.88</fee:fee>
<fee:class>standard</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfathered.site</fee:name>
<fee:currency>GBP</fee:currency>
<fee:command >renew</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Renewal Fee" refundable="1" grace-period="P5D">42.20</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfathered.site</fee:name>
<fee:currency>GBP</fee:currency>
<fee:command >transfer</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Renewal Fee" refundable="1" grace-period="P5D">42.20</fee:fee>
<fee:class>premium</fee:class>
</fee:cd>
<fee:cd>
<fee:name>grandfathered.site</fee:name>
<fee:currency>GBP</fee:currency>
<fee:command >restore</fee:command>
<fee:period unit="y">1</fee:period>
<fee:fee description="Restore Fee" refundable="0" >50.64</fee:fee>
<fee:class>standard</fee:class>
</fee:cd>
</fee:chkData>
</extension>
<trID>
<clTRID>dom-chk-ENARBgGtOXfRPWWQl35zHA-111122576-7012a7</clTRID>
<svTRID>CNIC-68FDB91BB761A425000828BBE986F08E4AB2CFF6C743E0B48D0CD7204A3</svTRID>
</trID>
</response>
</epp>

 

Was this article helpful?
0 out of 0 found this helpful