draft-ietf-regext-epp-fees-05.txt   draft-ietf-regext-epp-fees-06.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: December 25, 2017 CentralNic Group plc Expires: February 4, 2018 CentralNic Group plc
J. Frakes J. Frakes
June 23, 2017 August 3, 2017
Registry Fee Extension for the Extensible Provisioning Protocol (EPP) Registry Fee Extension for the Extensible Provisioning Protocol (EPP)
draft-ietf-regext-epp-fees-05 draft-ietf-regext-epp-fees-06
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 December 25, 2017. This Internet-Draft will expire on February 4, 2018.
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 24 skipping to change at page 2, line 24
3.4. Fees and Credits . . . . . . . . . . . . . . . . . . . . 5 3.4. Fees and Credits . . . . . . . . . . . . . . . . . . . . 5
3.4.1. Refunds . . . . . . . . . . . . . . . . . . . . . . . 6 3.4.1. Refunds . . . . . . . . . . . . . . . . . . . . . . . 6
3.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 7 3.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 7
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 . . . . . . . . . . . . . . . . . . . . . . 8 3.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . 8
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
3.9. Reason . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.9. Reason . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Server Handling of Fee Information . . . . . . . . . . . . . 9 4. Server Handling of Fee Information . . . . . . . . . . . . . 10
5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 10 5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 10
5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 10 5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 10
5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 10 5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 10
5.1.1.1. Server Handling of Elements . . . . . . . . . . . 14 5.1.1.1. Server Handling of Elements . . . . . . . . . . . 14
5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 15 5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 15
5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 16 5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 16
5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 16 5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 16
5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 19 5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 19
5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 20 5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 20
5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 22 5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 22
skipping to change at page 2, line 46 skipping to change at page 2, line 46
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26
6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 26 6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 26
7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 30 8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 30
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 31 8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 31
9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 31 9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 31
9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 32 9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 32
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32
11. Change History . . . . . . . . . . . . . . . . . . . . . . . 33 11. Change History . . . . . . . . . . . . . . . . . . . . . . . 33
11.1. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 33 11.1. Change from 05 to 06 . . . . . . . . . . . . . . . . . . 33
11.2. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 33 11.2. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 33
11.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 33 11.3. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 33
11.4. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 33 11.4. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 33
11.5. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 33 11.5. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 33
11.6. Change from draft-brown-00 to draft-ietf-regext-fees-00 34 11.6. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 34
11.7. Change from draft-brown-00 to draft-ietf-regext-fees-00 34
12. Normative References . . . . . . . . . . . . . . . . . . . . 34 12. Normative References . . . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
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 39 skipping to change at page 3, line 41
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.21". The XML namespace prefix "fee" is used, but implementations 0.23". 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.21". This version number will increment with specifically "0.23". 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 8, line 48 skipping to change at page 8, line 48
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.
3.8. Phase and Subphase Attributes 3.8. Phase and Subphase Attributes
The <fee:command> element has two attributes, phase and subphase, The <fee:command> element has two attributes, phase and subphase,
that provide additional information related to a specific launch that provide additional information related to a specific launch
phase as described in [draft-ietf-eppext-launchphase]. phase as described in [draft-ietf-eppext-launchphase].
If the client <fee:command> contains no phase attribute the server
SHOULD return data (including the phase/subphase attribute(s)) for
all valid server combinations of currently active phase(s) and active
subphase(s).
If the client <fee:command> contains a server supported combination If the client <fee:command> contains a server supported combination
of phase/subphase the server MUST return fee data (including the of phase/subphase the server MUST return fee data (including the
phase/subphase attribute(s)) for the specific combination(s). phase/subphase attribute(s)) for the specific combination.
If the client <fee:command> contains no phase/subphase attributes and
the server has only one active phase/subphase combination the server
MUST return data (including the phase/subphase attribute(s)) of the
currently active phase/subphase.
If the client <fee:command> contains no phase/subphase attributes and
the server has more than one active phase/subphase combination the
server MUST respond with a 2003 "Required parameter missing" error.
If the client <fee:command> contains no phase/subphase attributes and
the server is currently in a "quiet period" (e.g. not accepting
registrations or applications) the server MUST return data consistent
with the general availability phase.
If the client <fee:command> contains a phase attribute with no If the client <fee:command> contains a phase attribute with no
subphase, the server SHOULD return data (including the phase/subphase subphase and the server has only one active subphase (or no subphase)
attribute(s)) for all valid server combinations of provided phase and of this phase, the server MUST return data (including the phase/
available subphase(s). subphase attribute(s)) of the provided phase and currently active
subphase.
If the client <fee:command> contains a phase attribute with no
subphase and the server has more than one active subphase combination
of this phase, the server MUST respond with a 2003 "Required
parameter missing" error.
If the client <fee:command> contains a subphase with no phase If the client <fee:command> contains a subphase with no phase
attribute the server MUST respond with a 2003 "Required parameter attribute the server MUST respond with a 2003 "Required parameter
missing" error. missing" error.
If the client <fee:command> contains a phase attribute not defined in If the client <fee:command> contains a phase attribute not defined in
[draft-ietf-eppext-launchphase] or not supported by server the server [draft-ietf-eppext-launchphase] or not supported by server the server
MUST respond with a 2004 "Parameter value range" error. MUST respond with a 2004 "Parameter value range" error.
If the client <fee:command> contains a subphase attribute (or phase/ If the client <fee:command> contains a subphase attribute (or phase/
skipping to change at page 11, line 19 skipping to change at page 11, line 21
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.21"> C: <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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>
skipping to change at page 11, line 49 skipping to change at page 11, line 51
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 an element referenced in o A <fee:objID> element, which MUST match an element referenced in
the client <check> command. the client <check> command.
o A <fee:command> element matching each <fee:command> (unless the o A <fee:command> element matching each <fee:command> (unless the
"avail" attribute of the <fee:cd> if false) that appeared in the "avail" attribute of the <fee:cd> if false) that appeared in the
corresponding <fee:check> of the client command. This element MAY corresponding <fee:check> of the client command. This element MAY
have the OPTIONAL "phase" and "subphase" attributes, which MUST have the OPTIONAL "phase" and "subphase" attributes, which MUST
match the same attributes in the corresponding <fee:command> match the same attributes in the corresponding <fee:command>
element of the client command. element of the client command if sent by the client.
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 MUST contain a <fee:reason> element (as described in element MUST contain a <fee:reason> element (as described in
Section 3.9) and the server MAY eliminate some or all of the Section 3.9) and the server MAY eliminate some or all of the
<fee:command> element(s). <fee:command> element(s).
skipping to change at page 13, line 9 skipping to change at page 13, line 11
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.21" S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.23"
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 avail="1"> 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>
skipping to change at page 16, line 26 skipping to change at page 16, 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.21"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 18, line 28 skipping to change at page 18, 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.21"> C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 19, line 21 skipping to change at page 19, 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.21"> S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 20, line 18 skipping to change at page 20, line 18
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.21"> S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 21, line 22 skipping to change at page 21, line 22
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.21"> C: <fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 22, line 20 skipping to change at page 22, 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.21"> S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 23, line 30 skipping to change at page 23, line 30
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.21"> C: <fee:transfer xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 24, line 25 skipping to change at page 24, 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.21"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 25, line 32 skipping to change at page 25, line 32
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.21"> C: <fee:update xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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.21"> S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.23">
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 26, line 40 skipping to change at page 26, 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.21" xmlns:fee="urn:ietf:params:xml:ns:fee-0.23"
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.21" targetNamespace="urn:ietf:params:xml:ns:fee-0.23"
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 28, line 4 skipping to change at page 28, line 4
<element name="currency" type="fee:currencyType" /> <element name="currency" type="fee:currencyType" />
<element name="cd" type="fee:objectCDType" <element name="cd" type="fee:objectCDType"
maxOccurs="unbounded" /> maxOccurs="unbounded" />
</sequence> </sequence>
</complexType> </complexType>
<complexType name="objectCDType"> <complexType name="objectCDType">
<sequence> <sequence>
<element name="objID" type="fee:objectIdentifierType" /> <element name="objID" type="fee:objectIdentifierType" />
<element name="command" type="fee:commandType" <element name="command" type="fee:commandType"
maxOccurs="unbounded" /> minOccurs="0" maxOccurs="unbounded" />
<element name="reason" type="fee:reasonType" minOccurs="0" /> <element name="reason" type="fee:reasonType" minOccurs="0" />
</sequence> </sequence>
<attribute name="avail" type="boolean" default="1" /> <attribute name="avail" type="boolean" default="1" />
</complexType> </complexType>
<!-- general transform (create, renew, update, transfer) command --> <!-- general transform (create, renew, update, transfer) command -->
<complexType name="transformCommandType"> <complexType name="transformCommandType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" <element name="currency" type="fee:currencyType"
minOccurs="0" /> minOccurs="0" />
skipping to change at page 31, line 5 skipping to change at page 31, line 5
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.21 URI: ietf:params:xml:ns:fee-0.23
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 33, line 4 skipping to change at page 32, line 48
o James Gould of Verisign Inc o James Gould of Verisign Inc
o Luis Munoz of ISC o Luis Munoz of ISC
o Michael Young of Architelos o Michael Young of Architelos
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
o Thomas Corte of Knipp Medien und Kommunikation GmbH
11. Change History 11. Change History
11.1. Change from 04 to 05 11.1. Change from 05 to 06
Updated scheme to version 0.23 to allow the return of no
<fee:command> element(s) if an error situation occurs. Edited
section 3.8 extensively after input from interim meeting and REGEXT
F2F meeting at IETF-99. Added normative reference for draft-ietf-
eppext-launchphase.
11.2. Change from 04 to 05
Updated scheme to version 0.21 to support the lang attribute for the Updated scheme to version 0.21 to support the lang attribute for the
reason element of the objectCDType and the commandType types as well reason element of the objectCDType and the commandType types as well
as to add the update command to the commandEnum type. Updated as to add the update command to the commandEnum type. Updated
section 3.1 to include language for the custom command. Added section 3.1 to include language for the custom command. Added
section 3.9 to provide a description of the <fee:reason> element. section 3.9 to provide a description of the <fee:reason> element.
Fixed typos and added clarification text on when client fee is less Fixed typos and added clarification text on when client fee is less
than server fee in section 4. Additionally, I added description than server fee in section 4. Additionally, I added description
pointers to appropriate Section 3 definitions for element clarity pointers to appropriate Section 3 definitions for element clarity
throughout the document. throughout the document.
11.2. Change from 03 to 04 11.3. Change from 03 to 04
Updated scheme to version 0.19 to correct typos and to replace the Updated scheme to version 0.19 to correct typos and to replace the
commandTypeValue type with the commandEnum type and customName commandTypeValue type with the commandEnum type and customName
attribute for stricter validation. Updated various text for grammar attribute for stricter validation. Updated various text for grammar
and clarity. Added text to section 4 clarifying the <check> response and clarity. Added text to section 4 clarifying the <check> response
when the client provided no fee extension but the server was when the client provided no fee extension but the server was
expecting the extension. expecting the extension.
11.3. Change from 02 to 03 11.4. 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 objectCheckType 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.4. Change from 01 to 02 11.5. 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.5. Change from 00 to 01 11.6. 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.6. Change from draft-brown-00 to draft-ietf-regext-fees-00 11.7. 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
[I-D.ietf-regext-launchphase]
Gould, J., Tan, W., and G. Brown, "Launch Phase Mapping
for the Extensible Provisioning Protocol (EPP)", draft-
ietf-regext-launchphase-05 (work in progress), June 2017.
[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>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>. <http://www.rfc-editor.org/info/rfc3688>.
[RFC3915] Hollenbeck, S., "Domain Registry Grace Period Mapping for [RFC3915] Hollenbeck, S., "Domain Registry Grace Period Mapping for
 End of changes. 37 change blocks. 
46 lines changed or deleted 76 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/