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-03

Abstract

This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of non-standard priced 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 several subsets of domain names to attract a non-standard price which MAY be either higher or lower than the standard price for registration, renewal, transfer and restoration. Lack of controls in the registration, renewal, transfer and restoration process introduces risk to clients of on-selling domain names to registrants at a price below their cost or to high a price, impacting their competitiveness amongst other clients.

This extension provides a mechanism for clients to obtain the price of a domain name 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 clients using an out of band mechanism. It is RECOMMENDED that acknowledgement by clients is MANDATORY for non-standard priced domain names to ensure that clients are aware of a higher or lower cost.

This specification does not preclude the publication of a price list. Clients 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.2" is used as an abbreviation for "urn:ar:params:xml:ns:price-1.2". 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 domain names. Prices are expressed for the period requested by the client. In some cases the price MAY not reflect the period requested by the client 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. Clients 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 client 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 non-standard priced 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 clients 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>standard.example</name>
        <name>lower.example</name>
        <name>higher.example</name>
        <name>invalid</name>
      </check>
    </check>
    <extension>
      <check xmlns="urn:ar:params:xml:ns:price-1.2">
        <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.2">
        <cd>
          <name>standard.example</name>
          <category>STANDARD</category>
          <period unit="y">5</period>
          <createPrice>50</createPrice>
          <renewPrice>50</renewPrice>
          <transferPrice>5</transferPrice>
          <restorePrice>40</restorePrice>
        </cd>
        <cd>
          <name>lower.example</name>
          <category>DISCOUNT CAT 1</category>
          <period unit="y">5</period>
          <createPrice>5</createPrice>
          <renewPrice>5</renewPrice>
          <transferPrice>1</transferPrice>
          <restorePrice>40</restorePrice>
        </cd>
        <cd>
          <name>higher.example</name>
          <category>PREMIUM CAT 2</category>
          <period unit="y">5</period>
          <createPrice>500</createPrice>
          <renewPrice>500</renewPrice>
          <transferPrice>50</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 non-standard registration price, the <domain:create> command is extended with a <price:create> element, which signals a registrar’s acknowledgement of the non-standard 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.2">
        <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.2">
        <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 non-standard names SHOULD return a 2003 "Required parameter missing" error in response to requests for registration of non-standard 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 non-standard renewal price, the <domain:renew> command is extended with a <price:renew> element, which signals a registrar’s acknowledgement of the non-standard 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.2">
        <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.2">
        <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 non-standard names SHOULD return a 2003 "Required parameter missing" error in response to requests for renewal of non-standard 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 clients to transfer domain names that attract a non-standard price, the <domain:transfer> command is extended with a <price:transfer> element, that signal a registrar’s acknowledgement of the non-standard 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.2">
        <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.2">
        <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 non-standard names SHOULD return a 2003 "Required parameter missing" error in response to requests for transfer of non-standard 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 in in redemption. No additional elements are defined for the EPP <update> response.

To enable clients to restore domain names that attract a non-standard price, the <domain:update> command is extended with a <price:update> element, that signal a registrar’s acknowledgement of the non-standard 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.2">
        <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.2">
        <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 non-standard names SHOULD return a 2003 "Required parameter missing" error in response to requests for restoration of non-standard 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.2"
  xmlns:price="urn:ar:params:xml:ns:price-1.2"
  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="category" type="token" minOccurs="0"/>
      <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>
</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