draft-ietf-regext-epp-fees-03.txt   draft-ietf-regext-epp-fees-04.txt 
Registration Protocols Extensions R. Carney Registration Protocols Extensions R. Carney
Internet-Draft GoDaddy Inc. Internet-Draft GoDaddy Inc.
Intended status: Standards Track G. Brown Intended status: Standards Track G. Brown
Expires: October 26, 2017 CentralNic Group plc Expires: December 6, 2017 CentralNic Group plc
J. Frakes J. Frakes
April 24, 2017 June 4, 2017
Registry Fee Extension for the Extensible Provisioning Protocol (EPP) Registry Fee Extension for the Extensible Provisioning Protocol (EPP)
draft-ietf-regext-epp-fees-03 draft-ietf-regext-epp-fees-04
Abstract Abstract
This document describes an Extensible Provisioning Protocol (EPP) This document describes an Extensible Provisioning Protocol (EPP)
extension mapping for registry fees. extension mapping for registry fees.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 33 skipping to change at page 1, line 33
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 26, 2017. This Internet-Draft will expire on December 6, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 26 skipping to change at page 2, line 26
3.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 6 3.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 6
3.4.3. Correlation between Refundability and Grace Periods . 7 3.4.3. Correlation between Refundability and Grace Periods . 7
3.4.4. Applicability . . . . . . . . . . . . . . . . . . . . 7 3.4.4. Applicability . . . . . . . . . . . . . . . . . . . . 7
3.5. Account Balance . . . . . . . . . . . . . . . . . . . . . 7 3.5. Account Balance . . . . . . . . . . . . . . . . . . . . . 7
3.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . 7 3.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . 7
3.7. Classification of Objects . . . . . . . . . . . . . . . . 8 3.7. Classification of Objects . . . . . . . . . . . . . . . . 8
3.8. Phase and Subphase Attributes . . . . . . . . . . . . . . 8 3.8. Phase and Subphase Attributes . . . . . . . . . . . . . . 8
4. Server Handling of Fee Information . . . . . . . . . . . . . 9 4. Server Handling of Fee Information . . . . . . . . . . . . . 9
5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 9 5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 9
5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 9 5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 9
5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 9 5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 10
5.1.1.1. Server Handling of Elements . . . . . . . . . . . 13 5.1.1.1. Server Handling of Elements . . . . . . . . . . . 14
5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 14 5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 14
5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 15 5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 15
5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 15 5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 15
5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 18 5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 18
5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 19 5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 19
5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 21 5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 21
5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 23 5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 23
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 25 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 25
6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 25 6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 25
7. Security Considerations . . . . . . . . . . . . . . . . . . . 29 7. Security Considerations . . . . . . . . . . . . . . . . . . . 29
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 29 8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 29
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 29 8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 30
9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 30 9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 30
9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 30 9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 31
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31
11. Change History . . . . . . . . . . . . . . . . . . . . . . . 31 11. Change History . . . . . . . . . . . . . . . . . . . . . . . 31
11.1. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 31 11.1. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 31
11.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 31 11.2. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 32
11.3. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 32 11.3. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 32
11.4. Change from draft-brown-00 to draft-ietf-regext-fees-00 32 11.4. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 32
11.5. Change from draft-brown-00 to draft-ietf-regext-fees-00 32
12. Normative References . . . . . . . . . . . . . . . . . . . . 32 12. Normative References . . . . . . . . . . . . . . . . . . . . 32
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
1. Introduction 1. Introduction
Historically, domain name registries have applied a simple fee Historically, domain name registries have applied a simple fee
structure for billable transactions, namely a basic unit price structure for billable transactions, namely a basic unit price
applied to domain <create>, <renew>, <transfer> and RGP [RFC3915] applied to domain <create>, <renew>, <transfer> and RGP [RFC3915]
restore commands. Given the relatively small number of EPP servers restore commands. Given the relatively small number of EPP servers
to which EPP clients have been required to connect, it has generally to which EPP clients have been required to connect, it has generally
skipping to change at page 3, line 23 skipping to change at page 3, line 23
of these fees out-of-band by contacting the server operators. of these fees out-of-band by contacting the server operators.
Given the recent expansion of the DNS namespace, and the Given the recent expansion of the DNS namespace, and the
proliferation of novel business models, it is now desirable to proliferation of novel business models, it is now desirable to
provide a method for EPP clients to query EPP servers for the fees provide a method for EPP clients to query EPP servers for the fees
and credits associated with certain commands and specific objects. and credits associated with certain commands and specific objects.
This document describes an extension mapping for version 1.0 of the This document describes an extension mapping for version 1.0 of the
Extensible Provisioning Protocol (EPP) [RFC5730]. This EPP mapping Extensible Provisioning Protocol (EPP) [RFC5730]. This EPP mapping
provides a mechanism by which EPP clients may query the fees and provides a mechanism by which EPP clients may query the fees and
credits associated with various billable transactions, and also credits associated with various billable transactions, and obtain
obtain their current account balance. their current account balance.
1.1. Conventions Used in This Document 1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
XML is case sensitive. Unless stated otherwise, XML specifications XML is case sensitive. Unless stated otherwise, XML specifications
and examples provided in this document MUST be interpreted in the and examples provided in this document MUST be interpreted in the
character case presented in order to develop a conforming character case presented in order to develop a conforming
implementation. implementation.
"fee" is used as an abbreviation for "urn:ietf:params:xml:ns:fee- "fee" is used as an abbreviation for "urn:ietf:params:xml:ns:fee-
0.17". The XML namespace prefix "fee" is used, but implementations 0.19". The XML namespace prefix "fee" is used, but implementations
MUST NOT depend on it and instead employ a proper namespace-aware XML MUST NOT depend on it and instead employ a proper namespace-aware XML
parser and serializer to interpret and output the XML documents. parser and serializer to interpret and output the XML documents.
In examples, "C:" represents lines sent by a protocol client and "S:" In examples, "C:" represents lines sent by a protocol client and "S:"
represents lines returned by a protocol server. Indentation and represents lines returned by a protocol server. Indentation and
white space in examples are provided only to illustrate element white space in examples are provided only to illustrate element
relationships and are not a REQUIRED feature of this protocol. relationships and are not a REQUIRED feature of this protocol.
(Note to RFC Editor: remove the following paragraph before (Note to RFC Editor: remove the following paragraph before
publication as an RFC.) publication as an RFC.)
The XML namespace prefix above contains a version number, The XML namespace prefix above contains a version number,
specifically "0.17". This version number will increment with specifically "0.19". This version number will increment with
successive versions of this document, and will reach 1.0 if and when successive versions of this document, and will reach 1.0 if and when
this document is published as an RFC. This permits clients to this document is published as an RFC. This permits clients to
distinguish which version of the extension a server has implemented. distinguish which version of the extension a server has implemented.
2. Migrating to Newer Versions of This Extension 2. Migrating to Newer Versions of This Extension
(Note to RFC Editor: remove this section before publication as an (Note to RFC Editor: remove this section before publication as an
RFC.) RFC.)
Servers which implement this extension SHOULD provide a way for Servers which implement this extension SHOULD provide a way for
skipping to change at page 5, line 18 skipping to change at page 5, line 18
3.2. Currency Codes 3.2. Currency Codes
The <fee:currency> element is used to indicate which currency fees The <fee:currency> element is used to indicate which currency fees
are charged in. This value of this element MUST be a three-character are charged in. This value of this element MUST be a three-character
currency code from [ISO4217]. currency code from [ISO4217].
Note that ISO 4217 provides the special "XXX" code, which MAY be used Note that ISO 4217 provides the special "XXX" code, which MAY be used
if the server uses a non-currency based system for assessing fees, if the server uses a non-currency based system for assessing fees,
such as a system of credits. such as a system of credits.
The use of <fee:currency> elements in commands is OPTIONAL: if a The use of <fee:currency> elements in client commands is OPTIONAL: if
<fee:currency> element is not present in a command, the server MUST a <fee:currency> element is not present in a command, the server MUST
determine the currency based on the client's account settings which determine the currency based on the client's account settings which
MUST be agreed by the client and server via an out-of-band channel. MUST be agreed by the client and server via an out-of-band channel.
However, the <fee:currency> element MUST be present in responses. However, the <fee:currency> element MUST be present in responses.
Servers SHOULD NOT perform a currency conversion if a client uses an Servers SHOULD NOT perform a currency conversion if a client uses an
incorrect currency code. Servers SHOULD return a 2004 "Parameter incorrect currency code. Servers SHOULD return a 2004 "Parameter
value range" error instead. value range" error instead.
3.3. Validity Periods 3.3. Validity Periods
When querying for fee information using the <check> command, the When querying for fee information using the <check> command, the
<fee:period> element is used to indicate the units to be added to the <fee:period> element is used to indicate the units to be added to the
registration period of objects by the <create>, <renew> and registration period of objects by the <create>, <renew> and
<transfer> commands. This element is derived from the <transfer> commands. This element is derived from the
<domain:period> element described in [RFC5731]. <domain:period> element described in [RFC5731].
The <fee:period> element is OPTIONAL in <check> commands: if omitted, The <fee:period> element is OPTIONAL in <check> commands, if omitted,
the server MUST determine the fee(s) using a validity period of 1 the server MUST determine the fee(s) using the server default period.
year. The <fee:period> element MUST be present in <check> responses. The <fee:period> element MUST be present in <check> responses.
3.4. Fees and Credits 3.4. Fees and Credits
Servers which implement this extension will include elements in Servers which implement this extension will include elements in
responses which provide information about the fees and/or credits responses which provide information about the fees and/or credits
associated with a given billable transaction. associated with a given billable transaction.
The <fee:fee> and <fee:credit> elements are used to provide this The <fee:fee> and <fee:credit> elements are used to provide this
information. The presence of a <fee:fee> element in a response information. The presence of a <fee:fee> element in a response
indicates a debit against the client's account balance; a indicates a debit against the client's account balance; a
skipping to change at page 8, line 19 skipping to change at page 8, line 19
Whether or not the <fee:creditLimit> is included in responses is a Whether or not the <fee:creditLimit> is included in responses is a
matter of server policy. However, if a server chooses to offer matter of server policy. However, if a server chooses to offer
support for this element, it MUST be included in responses to all support for this element, it MUST be included in responses to all
"transform" commands (ie <create>, <renew>, <update>, <delete>, "transform" commands (ie <create>, <renew>, <update>, <delete>,
<transfer op="request">). <transfer op="request">).
3.7. Classification of Objects 3.7. Classification of Objects
Objects may be assigned to a particular class, category, or tier, Objects may be assigned to a particular class, category, or tier,
each of which has a particular fee or set of fees associated with it. each of which has a particular fee or set of fees associated with it.
The <fee:class> element which appears in <check> responses is used to The <fee:class> element, which MAY appear in <check> and transform
indicate the classification of an object. responses, is used to indicate the classification of an object.
If a server makes use of this element, it should provide clients with If a server makes use of this element, it should provide clients with
a list of all the values that the element may take via an out-of-band a list of all the values that the element may take via an out-of-band
channel. Servers MUST NOT use values which do not appear on this channel. Servers MUST NOT use values which do not appear on this
list. list.
Servers which make use of this element MUST use a <fee:class> element Servers which make use of this element MUST use a <fee:class> element
with the value "standard" for all objects that are subject to the with the value "standard" for all objects that are subject to the
standard or default fee. standard or default fee.
skipping to change at page 9, line 24 skipping to change at page 9, line 24
subphase combination) not supported by server the server MUST respond subphase combination) not supported by server the server MUST respond
with a 2004 "Parameter value range" error. with a 2004 "Parameter value range" error.
4. Server Handling of Fee Information 4. Server Handling of Fee Information
Depending on server policy, a client MAY be required to include the Depending on server policy, a client MAY be required to include the
extension elements described in this document for certain transform extension elements described in this document for certain transform
commands. Servers must provide clear documentation to clients about commands. Servers must provide clear documentation to clients about
the circumstances in which this extension must be used. the circumstances in which this extension must be used.
The server MUST return avail="0" in its response to a <check> command
for any domain name in the <check> command that does not include the
<fee:check> extension for which the server would likewise fail a
domain <create>> command when no <fee< extension is provided for that
same domain name.
If a server receives a command from a client which does not include If a server receives a command from a client which does not include
the extension elements required by the server for that command, then the fee extension data elements required by the server for that
it MUST respond with a 2003 "Required parameter missing" error. command, then the server MUST respond with a 2003 "Required parameter
missing" error.
If the currency or total fee provided by the client do not agree with If the currency or total fee provided by the client do not agree with
the server's own calculation of the fee for that command, then the the server's own calculation of the fee for that command, then the
server MUST reject the command with a 2004 "Parameter value range" server MUST reject the command with a 2004 "Parameter value range"
error. error.
5. EPP Command Mapping 5. EPP Command Mapping
A detailed description of the EPP syntax and semantics can be found A detailed description of the EPP syntax and semantics can be found
in [RFC5730]. in [RFC5730].
skipping to change at page 10, line 10 skipping to change at page 10, line 20
The command MAY contain an <extension> element which MAY contain a The command MAY contain an <extension> element which MAY contain a
<fee:check> element. The <fee:check> element MAY contain one <fee:check> element. The <fee:check> element MAY contain one
<fee:currency> element and MUST contain one or more <fee:command> <fee:currency> element and MUST contain one or more <fee:command>
elements. elements.
The <fee:command> element(s) contain(s) a "name" attribute, an The <fee:command> element(s) contain(s) a "name" attribute, an
OPTIONAL "phase" attribute, and an OPTIONAL "subphase" attribute. OPTIONAL "phase" attribute, and an OPTIONAL "subphase" attribute.
The <fee:command> element(s) MAY have the following child elements: The <fee:command> element(s) MAY have the following child elements:
o An OPTIONAL <fee:period> element. o An OPTIONAL <fee:period> element.
o An OPTIONAL <fee:class> element.
Example <check> command: Example <check> command:
C: <?xml version="1.0" encoding="utf-8" standalone="no"?> C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <check> C: <check>
C: <domain:check C: <domain:check
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:name>example.net</domain:name> C: <domain:name>example.net</domain:name>
C: <domain:name>example.xyz</domain:name> C: <domain:name>example.xyz</domain:name>
C: </domain:check> C: </domain:check>
C: </check> C: </check>
C: <extension> C: <extension>
C: <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> C: <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:command name="create"> C: <fee:command name="create">
C: <fee:period unit="y">2</fee:period> C: <fee:period unit="y">2</fee:period>
C: </fee:command> C: </fee:command>
C: <fee:command name="renew"/> C: <fee:command name="renew"/>
C: <fee:command name="transfer"/> C: <fee:command name="transfer"/>
C: <fee:command name="restore"/> C: <fee:command name="restore"/>
C: </fee:check> C: </fee:check>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
When the server receives a <check> command that includes the When the server receives a <check> command that includes the
extension elements described above, its response MUST contain an extension elements described above, its response MUST contain an
<extension> element, which MUST contain a child <fee:chkData> <extension> element, which MUST contain a child <fee:chkData>
element. The <fee:chkData> element MUST contain a <fee:currency> element. The <fee:chkData> element MUST contain a <fee:currency>
element and a <fee:cd> for each <domain:name> element referenced in element and a <fee:cd> for each element referenced in the client
the <domain:check> element of the client command. <check> command.
Each <fee:cd> element MUST contain the following child elements: Each <fee:cd> element MUST contain the following child elements:
o A <fee:objID> element, which MUST match a <domain:name> from the o A <fee:objID> element, which MUST match an element referenced in
client command. the client <check> command.
o A <fee:command> element matching each <fee:command> that appeared o A <fee:command> element matching each <fee:command> (unless the
in the corresponding <fee:check> of the client command. This "avail" attribute of the <fee:cd> if false) that appeared in the
element MAY have the OPTIONAL "phase" and "subphase" attributes, corresponding <fee:check> of the client command. This element MAY
which MUST match the same attributes in the corresponding have the OPTIONAL "phase" and "subphase" attributes, which MUST
<fee:command> element of the client command. match the same attributes in the corresponding <fee:command>
element of the client command.
The <fee:cd> element also has an OPTIONAL "avail" attribute which is The <fee:cd> element also has an OPTIONAL "avail" attribute which is
a boolean. If the value of this attribute evaluates to false, this a boolean. If the value of this attribute evaluates to false, this
indicates that the server cannot calculate the relevant fees, because indicates that the server cannot calculate the relevant fees, because
the object, command, currency, period, class or some combination is the object, command, currency, period, class or some combination is
invalid per server policy. If "avail" is false then the <fee:cd> invalid per server policy. If "avail" is false then the <fee:cd>
element MAY contain a <fee:reason> element and the server MAY element MUST contain a <fee:reason> element and the server MAY
eliminate some or all of the <fee:command> element(s). eliminate some or all of the <fee:command> element(s).
The <fee:command> element(s) MAY have the following child elements: The <fee:command> element(s) MAY have the following child elements:
o An OPTIONAL <fee:period> element, which contains the same unit o An OPTIONAL <fee:period> element, which contains the same unit
that appeared in the <fee:period> element of the command. If the that appeared in the <fee:period> element of the command. If the
value of the preceding <fee:command> element is "restore", this value of the preceding <fee:command> element is "restore", this
element MUST NOT be included, otherwise it MUST be included. If element MUST NOT be included, otherwise it MUST be included. If
no <fee:period> appeared in command (and the command is not no <fee:period> appeared in the client command (and the command is
"restore") then the server MUST return its default period value. not "restore") then the server MUST return its default period
value.
o Zero or more <fee:fee> elements. o Zero or more <fee:fee> elements.
o Zero or more <fee:credit> elements. o Zero or more <fee:credit> elements.
o An OPTIONAL <fee:class> element. o An OPTIONAL <fee:class> element.
o An OPTIONAL <fee:reason> element. o An OPTIONAL <fee:reason> element.
If the "avail" attribute of the <fee:cd> elelment is true and if no If the "avail" attribute of the <fee:cd> element is true and if no
<fee:fee> elements are present in a <fee:command> element, this <fee:fee> elements are present in a <fee:command> element, this
indicates that no fee will be assessed by the server for this indicates that no fee will be assessed by the server for this
command. command.
If the "avail" attribute of the <fee:cd> element is false, then the If the "avail" attribute is true, then the <fee:command> element MUST
<fee:command> element MUST NOT contain any <fee:fee> or <fee:credit> NOT contain a <fee:reason> element.
child elements. If the "avail" attribute is true, then the
<fee:command> element MUST NOT contain a <fee:reason> element.
Example <check> response: Example <check> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:chkData S: <domain:chkData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:cd> S: <domain:cd>
S: <domain:name avail="1">example.com</domain:name> S: <domain:name avail="1">example.com</domain:name>
S: </domain:cd> S: </domain:cd>
S: <domain:cd> S: <domain:cd>
S: <domain:name avail="1">example.net</domain:name> S: <domain:name avail="1">example.net</domain:name>
S: </domain:cd> S: </domain:cd>
S: <domain:cd> S: <domain:cd>
S: <domain:name avail="1">example.xyz</domain:name> S: <domain:name avail="1">example.xyz</domain:name>
S: </domain:cd> S: </domain:cd>
S: </domain:chkData> S: </domain:chkData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:chkData S: <fee:chkData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.17" S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.19"
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:cd> S: <fee:cd avail="1">
S: <fee:objID>example.com</fee:objID> S: <fee:objID>example.com</fee:objID>
S: <fee:command name="create"> S: <fee:command name="create">
S: <fee:period unit="y">2</fee:period> S: <fee:period unit="y">2</fee:period>
S: <fee:fee S: <fee:fee
S: description="Registration Fee" S: description="Registration Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">10.00</fee:fee> S: grace-period="P5D">10.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="renew"> S: <fee:command name="renew">
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee S: <fee:fee
S: description="Renewal Fee" S: description="Renewal Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="transfer"> S: <fee:command name="transfer">
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee S: <fee:fee
S: description="Transfer Fee" S: description="Transfer Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="restore"> S: <fee:command name="restore">
S: <fee:fee S: <fee:fee
S: description="Redemption Fee">5.00</fee:fee> S: description="Redemption Fee">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: </fee:cd> S: </fee:cd>
S: <fee:cd> S: <fee:cd avail="1">
S: <fee:objID>example.net</fee:objID> S: <fee:objID>example.net</fee:objID>
S: <fee:command name="create"> S: <fee:command name="create">
S: <fee:period unit="y">2</fee:period> S: <fee:period unit="y">2</fee:period>
S: <fee:fee S: <fee:fee
S: description="Registration Fee" S: description="Registration Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">10.00</fee:fee> S: grace-period="P5D">10.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="renew"> S: <fee:command name="renew">
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee S: <fee:fee
S: description="Renewal Fee" S: description="Renewal Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="transfer"> S: <fee:command name="transfer">
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee S: <fee:fee
S: description="Transfer Fee" S: description="Transfer Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="restore"> S: <fee:command name="restore">
S: <fee:fee S: <fee:fee
S: description="Redemption Fee">5.00</fee:fee> S: description="Redemption Fee">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: </fee:cd> S: </fee:cd>
S: <fee:cd avail="0"> S: <fee:cd avail="0">
S: <fee:objID>example.xyz</fee:objID> S: <fee:objID>example.xyz</fee:objID>
S: <fee:command name="create"> S: <fee:command name="create">
S: <fee:period unit="y">2</fee:period> S: <fee:period unit="y">2</fee:period>
S: <fee:reason>Only 1 year registration periods are vaild.</fee:reason> S: <fee:reason>Only 1 year registration periods are
S: </fee:command> S: vaild.</fee:reason>
S: </fee:cd> S: </fee:command>
S: </fee:chkData> S: </fee:cd>
S: </extension> S: </fee:chkData>
S: <trID> S: </extension>
S: <clTRID>ABC-12345</clTRID> S: <trID>
S: <svTRID>54322-XYZ</svTRID> S: <clTRID>ABC-12345</clTRID>
S: </trID> S: <svTRID>54322-XYZ</svTRID>
S: </response> S: </trID>
S: </epp> S: </response>
S: </epp>
5.1.1.1. Server Handling of Elements 5.1.1.1. Server Handling of Elements
Clients MAY include a <fee:class> in the <fee:command> element. Clients MAY include a <fee:class> in the <fee:command> element.
There are three ways in which servers may handle this element: There are two ways in which servers may handle this element:
1. If the server supports the concept of tiers or classes of 1. If the server supports the concept of tiers or classes of
objects, then the value of this element MUST be validated. If objects, then the value of this element MUST be validated. If
incorrect for the specified object, the "avail" attribute of the incorrect for the specified object, the "avail" attribute of the
corresponding <fee:command> element MUST be false. corresponding <fee:cd> element MUST be false.
2. If the server supports different "types" of object registrations 2. If the server supports different "types" of object registrations
(such as a "blocking" registration which does not resolve, or (such as a "blocking" registration which does not resolve, or
where a registry provides a value-added service that requires an where a registry provides a value-added service that requires an
opt-out to disable), then, as with the first model, the server opt-out to disable), then, as with the first model, the server
MUST validate the value of the element. If the value is MUST validate the value of the element. If the value is
incorrect, the "avail" attribute of the corresponding incorrect, the "avail" attribute of the corresponding <fee:cd>
<fee:command> element MUST be false, and a <fee:reason> element element MUST be false, and a <fee:reason> element MUST be
MUST be provided. provided.
3. If the server supports neither of the above models, the element
MUST be ignored.
Server operators must provide clear documentation to client operators Server operators must provide clear documentation to client operators
which of the above models it supports. which of the above models it supports.
5.1.2. EPP Transfer Query Command 5.1.2. EPP Transfer Query Command
This extension does not add any elements to the EPP <transfer> query This extension does not add any elements to the EPP <transfer> query
command, but does include elements in the response, when the command, but does include elements in the response, when the
extension has been selected during a <login> command. extension has been selected during a <login> command.
When the <transfer> query command has been processed successfully, When the <transfer> query command has been processed successfully,
the client selected the extension when it logged in, and the client the client selected the extension when it logged in, and the client
is authorised by the server to view information about the transfer, is authorized by the server to view information about the transfer,
the server MAY include in the <extension> section of the EPP response the server MAY include in the <extension> section of the EPP response
a <fee:trnData> element, which contains the following child elements: a <fee:trnData> element, which contains the following child elements:
o A <fee:currency> element. o A <fee:currency> element.
o A <fee:period> element. o A <fee:period> element.
o Zero or more <fee:fee> elements containing the fees that will be o Zero or more <fee:fee> elements containing the fees that will be
charged to the gaining client. charged to the gaining client.
o Zero or more <fee:credit> elements containing the credits that o Zero or more <fee:credit> elements containing the credits that
will be refunded to the losing client. will be refunded to the losing client.
skipping to change at page 15, line 26 skipping to change at page 15, line 26
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:trStatus>pending</domain:trStatus> S: <domain:trStatus>pending</domain:trStatus>
S: <domain:reID>ClientX</domain:reID> S: <domain:reID>ClientX</domain:reID>
S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate> S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate>
S: <domain:acID>ClientY</domain:acID> S: <domain:acID>ClientY</domain:acID>
S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate> S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate>
S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate> S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate>
S: </domain:trnData> S: </domain:trnData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee>5.00</fee:fee> S: <fee:fee>5.00</fee:fee>
S: </fee:trnData> S: </fee:trnData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
skipping to change at page 17, line 28 skipping to change at page 17, line 28
C: </domain:ns> C: </domain:ns>
C: <domain:registrant>jd1234</domain:registrant> C: <domain:registrant>jd1234</domain:registrant>
C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="admin">sh8013</domain:contact>
C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact>
C: <domain:authInfo> C: <domain:authInfo>
C: <domain:pw>2fooBAR</domain:pw> C: <domain:pw>2fooBAR</domain:pw>
C: </domain:authInfo> C: </domain:authInfo>
C: </domain:create> C: </domain:create>
C: </create> C: </create>
C: <extension> C: <extension>
C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:create> C: </fee:create>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <create> response: Example <create> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
skipping to change at page 18, line 21 skipping to change at page 18, line 21
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:creData S: <domain:creData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate> S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
S: <domain:exDate>2001-04-03T22:00:00.0Z</domain:exDate> S: <domain:exDate>2001-04-03T22:00:00.0Z</domain:exDate>
S: </domain:creData> S: </domain:creData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee S: <fee:fee
S: description="Registration Fee" S: description="Registration Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: <fee:balance>-5.00</fee:balance> S: <fee:balance>-5.00</fee:balance>
S: <fee:creditLimit>1000.00</fee:creditLimit> S: <fee:creditLimit>1000.00</fee:creditLimit>
S: </fee:creData> S: </fee:creData>
S: </extension> S: </extension>
S: <trID> S: <trID>
skipping to change at page 19, line 17 skipping to change at page 19, line 17
Example <delete> response: Example <delete> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <extension> S: <extension>
S: <fee:delData S: <fee:delData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:credit description="AGP Credit">-5.00</fee:credit> S: <fee:credit description="AGP Credit">-5.00</fee:credit>
S: <fee:balance>1005.00</fee:balance> S: <fee:balance>1005.00</fee:balance>
S: </fee:delData> S: </fee:delData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
skipping to change at page 20, line 20 skipping to change at page 20, line 20
C: <command> C: <command>
C: <renew> C: <renew>
C: <domain:renew C: <domain:renew
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:curExpDate>2000-04-03</domain:curExpDate> C: <domain:curExpDate>2000-04-03</domain:curExpDate>
C: <domain:period unit="y">5</domain:period> C: <domain:period unit="y">5</domain:period>
C: </domain:renew> C: </domain:renew>
C: </renew> C: </renew>
C: <extension> C: <extension>
C: <fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> C: <fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:renew> C: </fee:renew>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <renew> response: Example <renew> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
skipping to change at page 21, line 20 skipping to change at page 21, line 20
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:renData S: <domain:renData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate> S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
S: </domain:renData> S: </domain:renData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee S: <fee:fee
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: <fee:balance>1000.00</fee:balance> S: <fee:balance>1000.00</fee:balance>
S: </fee:renData> S: </fee:renData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
skipping to change at page 22, line 29 skipping to change at page 22, line 29
C: <domain:transfer C: <domain:transfer
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:period unit="y">1</domain:period> C: <domain:period unit="y">1</domain:period>
C: <domain:authInfo> C: <domain:authInfo>
C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw> C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw>
C: </domain:authInfo> C: </domain:authInfo>
C: </domain:transfer> C: </domain:transfer>
C: </transfer> C: </transfer>
C: <extension> C: <extension>
C: <fee:transfer xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> C: <fee:transfer xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:transfer> C: </fee:transfer>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <transfer> response: Example <transfer> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
skipping to change at page 23, line 25 skipping to change at page 23, line 25
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:trStatus>pending</domain:trStatus> S: <domain:trStatus>pending</domain:trStatus>
S: <domain:reID>ClientX</domain:reID> S: <domain:reID>ClientX</domain:reID>
S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate> S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate>
S: <domain:acID>ClientY</domain:acID> S: <domain:acID>ClientY</domain:acID>
S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate> S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate>
S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate> S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate>
S: </domain:trnData> S: </domain:trnData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee S: <fee:fee
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:trnData> S: </fee:trnData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
skipping to change at page 24, line 31 skipping to change at page 24, line 31
C: <update> C: <update>
C: <domain:update C: <domain:update
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:chg> C: <domain:chg>
C: <domain:registrant>sh8013</domain:registrant> C: <domain:registrant>sh8013</domain:registrant>
C: </domain:chg> C: </domain:chg>
C: </domain:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <fee:update xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> C: <fee:update xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:update> C: </fee:update>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <update> response: Example <update> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <extension> S: <extension>
S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"> S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.19">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee>5.00</fee:fee> S: <fee:fee>5.00</fee:fee>
S: </fee:updData> S: </fee:updData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S: </epp> S: </epp>
skipping to change at page 25, line 40 skipping to change at page 25, line 40
of the object mapping suitable for automated validation of EPP XML of the object mapping suitable for automated validation of EPP XML
instances. The BEGIN and END tags are not part of the schema; they instances. The BEGIN and END tags are not part of the schema; they
are used to note the beginning and ending of the schema for URI are used to note the beginning and ending of the schema for URI
registration purposes. registration purposes.
6.1. Fee Extension Schema 6.1. Fee Extension Schema
BEGIN BEGIN
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" <schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:fee="urn:ietf:params:xml:ns:fee-0.17" xmlns:fee="urn:ietf:params:xml:ns:fee-0.19"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
targetNamespace="urn:ietf:params:xml:ns:fee-0.17" targetNamespace="urn:ietf:params:xml:ns:fee-0.19"
elementFormDefault="qualified"> elementFormDefault="qualified">
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" />
<import namespace="urn:ietf:params:xml:ns:domain-1.0" /> <import namespace="urn:ietf:params:xml:ns:domain-1.0" />
<annotation> <annotation>
<documentation> <documentation>
Extensible Provisioning Protocol v1.0 Fee Extension Extensible Provisioning Protocol v1.0 Fee Extension
</documentation> </documentation>
skipping to change at page 26, line 27 skipping to change at page 26, line 27
<element name="update" type="fee:transformCommandType" /> <element name="update" type="fee:transformCommandType" />
<element name="updData" type="fee:transformResultType" /> <element name="updData" type="fee:transformResultType" />
<element name="delData" type="fee:transformResultType" /> <element name="delData" type="fee:transformResultType" />
<!-- client <check> command --> <!-- client <check> command -->
<complexType name="checkType"> <complexType name="checkType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" <element name="currency" type="fee:currencyType"
minOccurs="0" /> minOccurs="0" />
<element name="command" type="fee:commandType" <element name="command" type="fee:commandType"
minOccurs=""1" "maxOccurs="unbounded" /> minOccurs="1" maxOccurs="unbounded" />
</sequence> </sequence>
</complexType> </complexType>
<complexType name="objectIdentifierType"> <complexType name="objectIdentifierType">
<simpleContent> <simpleContent>
<extension base="eppcom:labelType"> <extension base="eppcom:labelType">
<attribute name="element" <attribute name="element"
type="NMTOKEN" default="name" /> type="NMTOKEN" default="name" />
</extension> </extension>
</simpleContent> </simpleContent>
skipping to change at page 28, line 10 skipping to change at page 28, line 10
<sequence> <sequence>
<element name="period" type="domain:periodType" <element name="period" type="domain:periodType"
minOccurs="0" maxOccurs="1" /> minOccurs="0" maxOccurs="1" />
<element name="fee" type="fee:feeType" <element name="fee" type="fee:feeType"
minOccurs="0" maxOccurs="unbounded" /> minOccurs="0" maxOccurs="unbounded" />
<element name="credit" type="fee:creditType" <element name="credit" type="fee:creditType"
minOccurs="0" maxOccurs="unbounded" /> minOccurs="0" maxOccurs="unbounded" />
<element name="class" type="token" minOccurs="0" /> <element name="class" type="token" minOccurs="0" />
<element name="reason" type="token" minOccurs="0" /> <element name="reason" type="token" minOccurs="0" />
</sequence> </sequence>
<attribute name="name" type="fee:commandTypeValue"/> <attribute name="name" type="fee:commandEnum"/>
<attribute name="customName" type="token"/>
<attribute name="phase" type="token" /> <attribute name="phase" type="token" />
<attribute name="subphase" type="token" /> <attribute name="subphase" type="token" />
</complexType> </complexType>
<simpleType name="commandTypeValue"> <simpleType name="commandEnum">
<restriction base="token"> <restriction base="token">
<minLength value="3"/> <enumeration value="create"/>
<maxLength value="16"/> <enumeration value="delete"/>
<enumeration value="renew"/>
<enumeration value="transfer"/>
<enumeration value="restore"/>
<enumeration value="custom"/>
</restriction> </restriction>
</simpleType> </simpleType>
<simpleType name="nonNegativeDecimal"> <simpleType name="nonNegativeDecimal">
<restriction base="decimal"> <restriction base="decimal">
<minInclusive value="0" /> <minInclusive value="0" />
</restriction> </restriction>
</simpleType> </simpleType>
<simpleType name="negativeDecimal"> <simpleType name="negativeDecimal">
skipping to change at page 29, line 39 skipping to change at page 29, line 45
to this specification as well. to this specification as well.
8. IANA Considerations 8. IANA Considerations
8.1. XML Namespace 8.1. XML Namespace
This document uses URNs to describe XML namespaces and XML schemas This document uses URNs to describe XML namespaces and XML schemas
conforming to a registry mechanism described in [RFC3688]. The conforming to a registry mechanism described in [RFC3688]. The
following URI assignment is requested of IANA: following URI assignment is requested of IANA:
URI: ietf:params:xml:ns:fee-0.17 URI: ietf:params:xml:ns:fee-0.19
Registrant Contact: See the "Author's Address" section of this Registrant Contact: See the "Author's Address" section of this
document. document.
XML: See the "Formal Syntax" section of this document. XML: See the "Formal Syntax" section of this document.
8.2. EPP Extension Registry 8.2. EPP Extension Registry
The EPP extension described in this document should be registered by The EPP extension described in this document should be registered by
the IANA in the EPP Extension Registry described in [RFC7451]. The the IANA in the EPP Extension Registry described in [RFC7451]. The
skipping to change at page 31, line 37 skipping to change at page 31, line 44
o Ben Levac and Jeff Eckhaus of Demand Media o Ben Levac and Jeff Eckhaus of Demand Media
o Seth Goldman of Google o Seth Goldman of Google
o Klaus Malorny and Michael Bauland of Knipp o Klaus Malorny and Michael Bauland of Knipp
o Jody Kolker, Joe Snitker and Kevin Allendorf of Go Daddy o Jody Kolker, Joe Snitker and Kevin Allendorf of Go Daddy
o Michael Holloway of Com Laude o Michael Holloway of Com Laude
o Santosh Kalsangrah of Impetus Infotech o Santosh Kalsangrah of Impetus Infotech
o Alex Mayrhofer of Nic.at o Alex Mayrhofer of Nic.at
11. Change History 11. Change History
11.1. Change from 02 to 03 11.1. Change from 03 to 04
Updated scheme to version 0.19 to correct typos and to replace the
commandTypeValue type with the commandEnum type and customName
attribute for stricter validation. Updated various text for grammar
and clarity. Added text to section 4 clarifying the <check> response
when the client provided no fee extension but the server was
expecting the extension.
11.2. Change from 02 to 03
Updated scheme to version 0.17 to simplify the check command syntax. Updated scheme to version 0.17 to simplify the check command syntax.
Moved fee avail to objectCDType to allow fast failing on error Moved fee avail to objectCDType to allow fast failing on error
situations. Removed the objectCheckTpye as it was no longer being situations. Removed the objectCheckType as it was no longer being
used. Updated examples to reflect these scheme changes. Added used. Updated examples to reflect these scheme changes. Added
language for server failing a <create> if the <fee:fee> passed by the language for server failing a <create> if the <fee:fee> passed by the
client is less than the server fee. client is less than the server fee.
11.2. Change from 01 to 02 11.3. Change from 01 to 02
Updated scheme to version 0.15 to fix errors in CommandType, Updated scheme to version 0.15 to fix errors in CommandType,
objectCDType, transformCommandType and transformResultType objectCDType, transformCommandType and transformResultType
definitions. definitions.
11.3. Change from 00 to 01 11.4. Change from 00 to 01
Added Roger Carney as author to finish draft. Moved Formal Syntax Added Roger Carney as author to finish draft. Moved Formal Syntax
section to main level numbering. Various grammar, typos, and section to main level numbering. Various grammar, typos, and
administrative edits for clarity. Removed default value for the administrative edits for clarity. Removed default value for the
"applied" attribute of <fee:fee> so that it can truly be optional. "applied" attribute of <fee:fee> so that it can truly be optional.
Added support for the <delete> command to return a <fee:fee> element Added support for the <delete> command to return a <fee:fee> element
as well. Modified default response on the <check> command for the as well. Modified default response on the <check> command for the
optional <fee:period> when it was not provided in the command, optional <fee:period> when it was not provided in the command,
leaving it to the server to provide the default period value. leaving it to the server to provide the default period value.
Extensive edits were done to the <check> command, the <check> Extensive edits were done to the <check> command, the <check>
response and to the fee extension schema (checkType, objectCheckType, response and to the fee extension schema (checkType, objectCheckType,
objectIdentifierType, objectCDType, commandType) to support objectIdentifierType, objectCDType, commandType) to support
requesting and returning multiple transformation fees in a single requesting and returning multiple transformation fees in a single
call. Added section on Phase/Subphase to provide more context on the call. Added section on Phase/Subphase to provide more context on the
uses. uses.
11.4. Change from draft-brown-00 to draft-ietf-regext-fees-00 11.5. Change from draft-brown-00 to draft-ietf-regext-fees-00
Updated to be REGEXT WG document. Updated to be REGEXT WG document.
12. Normative References 12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
 End of changes. 51 change blocks. 
172 lines changed or deleted 191 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/