TOC 
Internet Engineering Task ForceC. Wright
Internet-DraftQ. Pham
Intended status: InformationalAusRegistry
Expires: September 2, 2015March 2015


Domain Name Price Extension Mapping for the Extensible Provisioning Protocol (EPP)
draft-ar-price-domain-epp-mapping-02

Abstract

This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of premium domain names.

Status of this Memo

This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC 2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

This Internet-Draft will expire on September 2, 2015.



Table of Contents

1.  Introduction
    1.1.  Conventions Used in This Document
2.  Object Attributes
    2.1.  Price
3.  EPP Command Mapping
    3.1.  EPP Query Commands
        3.1.1.  EPP <check> Command
        3.1.2.  EPP <info> Command
        3.1.3.  EPP <transfer> Command
    3.2.  EPP Transform Commands
        3.2.1.  EPP <create> Command
        3.2.2.  EPP <delete> Command
        3.2.3.  EPP <renew> Command
        3.2.4.  EPP <transfer> Command
        3.2.5.  EPP <update> Command
4.  Formal Syntax
5.  acknowledgements
6.  Security Considerations
7.  Normative References
§  Authors' Addresses




 TOC 

1.  Introduction

Registry operators may consider a subset of domain names to be premium and therefore attract a higher registration, renewal, transfer and restore price compared to regular or standard domain names. For example a registry operator may consider all two character domain names to be more valuable (premium) compared to domains names that are 3 characters or more long. Lack of controls in the registration, renewal, transfer and restoration process introduces risk to registrars of on-selling domain names to registrants at a price below their cost.

This extension provides a mechanism for registrars to obtain the price of a domain name, not limited to premium domain names, and a mechanism to acknowledge the price charged for the registration, renewal, transfer or restoration of domain names. Acknowledgement takes place at time of registration, transfer, renewal and restoration. Updates to pricing information that affects existing registrations must be provided to registrars using an out of band mechanism. It is RECOMMENDED that acknowledgement by registrars is MANDATORY for premium names to ensure that registrars are aware of the higher cost of premium domain names.

This specification does not preclude the publication of a price list. Registrars may prefer an externally accessible list to performing a check before every registration.



 TOC 

1.1.  Conventions Used in This Document

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [RFC2119].

"price-1.1" is used as an abbreviation for "urn:ar:params:xml:ns:price-1.1". The XML namespace prefix "price" is used, but implementations MUST NOT depend on it and instead employ a proper namespace-aware XML parser and serializer to interpret and output the XML documents.



 TOC 

2.  Object Attributes

This extension adds additional elements to the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. Only those new elements are described here.



 TOC 

2.1.  Price

This extension defines price elements for the registration, renewal, transfer and restoration of domain names. Prices are expressed for the period requested by the registrar. In some cases the price MAY not reflect the period requested by the registrar depending on the server's business rules where a period does apply to a specific operation such as domain restoration.

The prices returned by the server are indicative only and MAY not take into consideration discounts or other factors that would otherwise adjust the price. Registrars SHOULD confirm with server operators any terms that may adjust the price before assuming the actual price charged for the transaction.

Price elements SHOULD be expressed in the currency that the registrar normally transacts in, or otherwise negotiated, using an out of band mechanism.



 TOC 

3.  EPP Command Mapping

A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification (Hollenbeck, S., “Extensible Provisioning Protocol (EPP),” August 2009.) [RFC5730]. The command mappings described here are specifically for use in provisioning premium domain names.



 TOC 

3.1.  EPP Query Commands

EPP provides three commands to retrieve object information: <check> to determine if an object is known to the server, <info> to retrieve detailed information associated with an object, and <transfer> to retrieve object transfer status information.



 TOC 

3.1.1.  EPP <check> Command

This extension defines additional elements to extend the EPP <check> command and response to be used in conjunction with the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].

To enable registrars to identify the registration, renewal, transfer and restoration price, the <domain:check> command is extended with a <price:check> element, which signals a registrar’s intention to retrieve a domain name's price information. The <price:check> extension element MAY contain the following child element:

Example <check> command requesting domain name price information

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <check>
      <check xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <name>non-premium.example</name>
        <name>invalid</name>
      </check>
    </check>
    <extension>
      <check xmlns="urn:ar:params:xml:ns:price-1.1">
        <period unit="y">5</period>
      </check>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

When a <check> command containing the <price:check> element has been processed successfully, the server MUST NOT respond with the <domain:chkData> element described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. Instead, servers MUST respond with a <price:chkData> element that contains one <price:cd> element for each domain name present in the command. The <price:cd> element contains the following child elements:

The server SHOULD provide the <createPrice>, <renewPrice>, <transferPrice> and <restorePrice> based on the <period> returned in the response, however there MAY be situations where the period does not apply to specific transactions as pricing MAY not be period based.

Example <check> response providing domain name price information

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <extension>
      <chkData xmlns="urn:ar:params:xml:ns:price-1.1">
        <cd>
          <name premium="1">premium.example</name>
          <period unit="y">5</period>
          <createPrice>100</createPrice>
          <renewPrice>100</renewPrice>
          <transferPrice>20</transferPrice>
          <restorePrice>40</restorePrice>
        </cd>
        <cd>
          <name premium="0">non-premium.example</name>
          <period unit="y">5</period>
          <createPrice>10</createPrice>
          <renewPrice>10</renewPrice>
          <transferPrice>2</transferPrice>
          <restorePrice>40</restorePrice>
        </cd>
        <cd>
          <name>invalid</name>
          <reason>Invalid domain name</reason>
        </cd>
      </chkData>
    </extension>
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>54321-XYZ</svTRID>
    </trID>
  </response>
</epp>


 TOC 

3.1.2.  EPP <info> Command

This extension does not define any extension to the EPP <info> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

3.1.3.  EPP <transfer> Command

This extension does not define any extension to the EPP <transfer> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

3.2.  EPP Transform Commands

EPP provides five commands to transform objects: <create> to create an instance of an object, <delete> to delete an instance of an object, <renew> to extend the validity period of an object, <transfer> to manage object sponsorship changes, and <update> to change information associated with an object.



 TOC 

3.2.1.  EPP <create> Command

This extension defines additional elements for the EPP <create> command described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. No additional elements are defined for the EPP <create> response.

To facilitate the registration of domain names that attract a premium registration price, the <domain:create> command is extended with a <price:create> element, which signals a registrar’s acknowledgement of the premium prices associated with the transaction. The <price:create> element contains the following child elements:

Example <create> command with simple acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <create xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <ns>
          <hostObj>ns1.example.net</hostObj>
          <hostObj>ns2.example.net</hostObj>
        </ns>
        <registrant>jd1234</registrant>
        <contact type="admin">sh8013</contact>
        <contact type="tech">sh8013</contact>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </create>
    </create>
    <extension>
      <create xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack />
      </create>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example <create> command including pricing information in the acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <create xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <ns>
          <hostObj>ns1.example.net</hostObj>
          <hostObj>ns2.example.net</hostObj>
        </ns>
        <registrant>jd1234</registrant>
        <contact type="admin">sh8013</contact>
        <contact type="tech">sh8013</contact>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </create>
    </create>
    <extension>
      <create xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack>
          <price>100</price>
        </ack>
      </create>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the registration of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for registration of premium names that do not include this extension.



 TOC 

3.2.2.  EPP <delete> Command

This extension does not define any extension to the EPP <delete> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

3.2.3.  EPP <renew> Command

This extension defines additional elements for the EPP <transfer> command described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. No additional elements are defined for the EPP <transfer> response.

To facilitate the renewal of domain names that attract a premium renewal price, the <domain:renew> command is extended with a <price:renew> element, which signals a registrar’s acknowledgement of the premium prices associated with the transaction. The <price:renew> element contains the following child elements:

Example <renew> command with simple acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <renew>
        <renew xmlns="urn:ietf:params:xml:ns:domain-1.0">
            <name>domain-name.tld</name>
            <curExpDate>2010-09-01</curExpDate>
            <period unit="y">5</period>
        </renew>
    </renew>
    <extension>
      <renew xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack />
      </renew>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example <renew> command including pricing information in the acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <renew>
        <renew xmlns="urn:ietf:params:xml:ns:domain-1.0">
            <name>domain-name.tld</name>
            <curExpDate>2010-09-01</curExpDate>
            <period unit="y">5</period>
        </renew>
    </renew>
    <extension>
      <renew xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack>
          <price>100</price>
        </ack>
      </renew>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the renewal of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for renewal of premium names that do not include this extension.



 TOC 

3.2.4.  EPP <transfer> Command

This extension defines additional elements for the EPP <transfer> command described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. No additional elements are defined for the EPP <transfer> response.

To enable registrars to transfer domain names that attract a premium price, the <domain:transfer> command is extended with a <price:transfer> element, that signal a registrar’s acknowledgement of the premium prices associated with the transaction. The <price:transfer> element contains the following child elements:

Example <transfer> command with simple acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="request">
      <transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </transfer>
    </transfer>
    <extension>
      <transfer xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack />
      </transfer>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example <transfer> command including pricing information in the acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="request">
      <transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </transfer>
    </transfer>
    <extension>
      <transfer xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack>
          <price>20</price>
        </ack>
      </transfer>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the transfer of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for transfer of premium names that do not include this extension.



 TOC 

3.2.5.  EPP <update> Command

This extension defines additional elements for the EPP <update> command described in the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) (Hollenbeck, S., “Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP),” September 2004.) [RFC3915]. for the restore request (op=request) for a domain name that is in redemption. No additional elements are defined for the EPP <update> response.

To enable registrars to restore domain names that attract a premium price, the <domain:update> command is extended with a <price:update> element, that signal a registrar’s acknowledgement of the premium prices associated with the transaction. The <price:update> element contains the following child elements:

Example <update> command with simple acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <update xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <chg/>
      </update>
    </update>
    <extension>
      <update xmlns="urn:ietf:params:xml:ns:rgp-1.0">
        <restore op="request"/>
      </update>
      <update xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack/>
      </update>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example <update> command including pricing information in the acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <update xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <chg/>
      </update>
    </update>
    <extension>
      <update xmlns="urn:ietf:params:xml:ns:rgp-1.0">
        <restore op="request"/>
      </update>
      <update xmlns="urn:ar:params:xml:ns:price-1.1">
        <ack>
          <price>12.2</price>
        </ack>
      </update>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the restoration of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for restoration of premium names that do not include this extension.



 TOC 

4.  Formal Syntax

<?xml version="1.0" standalone="no" ?>
<schema targetNamespace="urn:ar:params:xml:ns:price-1.1"
  xmlns:price="urn:ar:params:xml:ns:price-1.1"
  xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
  xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified">

  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" />
  <import namespace="urn:ietf:params:xml:ns:domain-1.0" />

  <!-- command-response extension elements -->
  <element name="check" type="price:chkType" />
  <element name="create" type="price:ackType" />
  <element name="renew" type="price:ackType" />
  <element name="transfer" type="price:ackType" />

  <complexType name="chkType">
  <sequence>
    <element name="period" type="domain:periodType" minOccurs="0" />
  </sequence>
  </complexType>

  <complexType name="ackType">
    <sequence>
      <element name="ack" type="price:priceAckType" />
    </sequence>
  </complexType>

  <complexType name="priceAckType">
    <sequence>
      <element name="price" type="decimal" minOccurs="0" />
    </sequence>
  </complexType>

  <!-- response elements -->
  <element name="chkData" type="price:chkDataType" />

  <complexType name="chkDataType">
    <sequence>
      <element name="cd" type="price:checkType"
               maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <complexType name="checkType">
    <sequence>
      <element name="name" type="price:checkNameType" />
      <element name="period" type="domain:periodType"
               minOccurs="0" />
      <element name="createPrice" type="decimal" minOccurs="0" />
      <element name="renewPrice" type="decimal" minOccurs="0" />
      <element name="transferPrice" type="decimal" minOccurs="0" />
      <element name="restorePrice" type="decimal" minOccurs="0" />
      <element name="reason" type="eppcom:reasonType"
               minOccurs="0" />
    </sequence>
  </complexType>

  <complexType name="checkNameType">
    <simpleContent>
        <extension base="eppcom:labelType">
            <attribute name="premium" type="boolean" />
        </extension>
    </simpleContent>
  </complexType>
</schema>


 TOC 

5.  acknowledgements

This document was inspired by Verisign's Premium Domain extension and draws many similarities to increase familiarity and reduce development time.



 TOC 

6.  Security Considerations

The mapping extensions described in this document do not provide any security services beyond those described by EPP (Hollenbeck, S., “Extensible Provisioning Protocol (EPP),” August 2009.) [RFC5730], the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731], and protocol layers used by EPP. The security considerations described in these other specifications apply to this specification as well.



 TOC 

7. Normative References

[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[RFC3915] Hollenbeck, S., “Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP),” RFC 3915, September 2004 (TXT).
[RFC5730] Hollenbeck, S., “Extensible Provisioning Protocol (EPP),” STD 69, RFC 5730, August 2009 (TXT).
[RFC5731] Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” STD 69, RFC 5731, August 2009 (TXT).


 TOC 

Authors' Addresses

  Chris Wright
  AusRegistry
  8/10 Queens Road
  Melbourne, Victoria 3004
  AU
Email:  chris@ausregistry.com
URI:  www.ausregistry.com
  
  Quoc Pham
  AusRegistry
  8/10 Queens Road
  Melbourne, Victoria 3004
  AU
Email:  quoc.pham@ausregistry.com
URI:  www.ausregistry.com