< draft-brown-epp-fees-00.txt   draft-brown-epp-fees-01.txt >
Internet Engineering Task Force G. Brown Internet Engineering Task Force G. Brown
Internet-Draft CentralNic Group plc Internet-Draft CentralNic Group plc
Intended status: Experimental November 4, 2013 Intended status: Experimental December 9, 2013
Expires: May 8, 2014 Expires: June 12, 2014
Registry Fee Extension for the Extensible Provisioning Protocol (EPP) Registry Fee Extension for the Extensible Provisioning Protocol (EPP)
draft-brown-epp-fees-00 draft-brown-epp-fees-01
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 31 skipping to change at page 1, line 31
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 May 8, 2014. This Internet-Draft will expire on June 12, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Conventions Used in This Document . . . . . . . . . . . . 3 1.1. Conventions Used in This Document . . . . . . . . . . . . 3
2. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 3 2. Client Actions . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . . 4 3. Currency Codes . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. EPP <info> Command . . . . . . . . . . . . . . . . . . 4 4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 4
2.1.2. EPP Transfer Query Command . . . . . . . . . . . . . . 7 4.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . . 4
2.2. EPP Transform Commands . . . . . . . . . . . . . . . . . . 8 4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 4
2.2.1. EPP <create> Command . . . . . . . . . . . . . . . . . 8 4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . . 8
2.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . . 9 4.1.3. EPP Transfer Query Command . . . . . . . . . . . . . . 11
2.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 10 4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . . 12
2.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . . 11 4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . . 12
2.2.5. EPP <update> Command . . . . . . . . . . . . . . . . . 12 4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . . 14
2.3. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 13 4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 15
3. Security Considerations . . . . . . . . . . . . . . . . . . . 16 4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . . 17
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . . 19
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17 4.3. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 21
6. Change History . . . . . . . . . . . . . . . . . . . . . . . . 17 5. Security Considerations . . . . . . . . . . . . . . . . . . . 25
6.1. Change from 0.1 to 0.2 . . . . . . . . . . . . . . . . . . 17 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
6.2. Change from 0.2 to 0.3 . . . . . . . . . . . . . . . . . . 17 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25
7. Normative References . . . . . . . . . . . . . . . . . . . . . 17 8. Change History . . . . . . . . . . . . . . . . . . . . . . . . 26
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.1. Change from 0.1 to 0.2 . . . . . . . . . . . . . . . . . . 26
8.2. Change from 0.2 to 0.3 . . . . . . . . . . . . . . . . . . 26
8.3. Change from 0.3 to 0.4 . . . . . . . . . . . . . . . . . . 26
9. Normative References . . . . . . . . . . . . . . . . . . . . . 27
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 27
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 restore applied to domain <create>, <renew>, <transfer> and RGP restore
commands. Given the relatively small number of EPP servers to which commands. Given the relatively small number of EPP servers to which
EPP clients have been required to connect, it has generally been the EPP clients have been required to connect, it has generally been the
case that client operators have been able to obtain details of these case that client operators have been able to obtain details of these
fees out-of-band by contacting the server operators. fees out-of-band by contacting the server operators.
skipping to change at page 3, line 37 skipping to change at page 3, line 37
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 "fee" is used as an abbreviation for
"urn:ietf:params:xml:ns:fee-0.3". The XML namespace prefix "fee" is "urn:ietf:params:xml:ns:fee-0.4". The XML namespace prefix "fee" is
used, but implementations MUST NOT depend on it and instead employ a used, but implementations MUST NOT depend on it and instead employ a
proper namespace-aware XML parser and serializer to interpret and proper namespace-aware XML parser and serializer to interpret and
output the XML documents. output the XML documents.
The XML namespace prefix above contains a version number, The XML namespace prefix above contains a version number,
specifically "0.3". This version number will increment with specifically "0.4". 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. EPP Command Mapping 2. Client Actions
The <fee:action> element is used in EPP query commands to determine
the command to which a fee is applicable.
The element values permitted by the server is a matter of repository
policy, but MUST include as a minimum the following values:
o "create" indicating a <domain:create> command;
o "renew" indicating a <domain:renew> command;
o "transfer" indicating a <domain:transfer> command;
If the server supports the Registry Grace Period Mapping [RFC3915],
then the server MUST also support the "restore" value.
The <fee:action> element MAY have an OPTIONAL "phase" attribute
specifying a launch phase as described in
[draft-tan-epp-launchphase]. It may also contain an OPTIONAL
"subphase" attribute identifying the custom or sub-phase as described
in [draft-tan-epp-launchphase].
3. Currency Codes
The <fee:currency> element is used to indicate which currency fees
are charged in. This value of this element MUST be a three-character
currency code from [ISO4217].
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,
such as a system of credits.
4. 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].
2.1. EPP Query Commands 4.1. EPP Query Commands
This extension does not add any elements to the EPP <check> or <poll> This extension does not add any elements to the EPP <poll> command or
commands or responses. response.
2.1.1. EPP <info> Command 4.1.1. EPP <check> Command
This extension defines additional elements for the EPP <info> This extension defines additional elements for the EPP <check>
command. command.
The command frame MAY contain an <extension> element which contains a The command frame MAY contain an <extension> element which MAY
<fee:info> element with the following child elements: contain one or more child <fee:check> elements with the following
child elements:
o A <domain:name> element that contains a domain name.
o A <fee:currency> element that contains the currency the fee is o A <fee:currency> element that contains the currency the fee is
charged in. This must be a three-character currency code from charged in.
[ISO4217] (Note: ISO 4217 provides the special "XXX" code which
may be used if the server uses a non-currency based system for
assessing fees, such as a system of credits).
o A <fee:action> element identifying the command. The element o A <fee:action> element identifying the command.
values supported by the server is a matter of repository policy,
but MUST include as a minimum the following values:
* "create" indicating a <domain:create> command; o A <fee:period> element that contains the number of units to be
added to the registration period of the domain object.
* "renew" indicating a <domain:renew> command; Example <check> command:
* "transfer" indicating a <domain:transfer> command; C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <check>
C: <domain:check
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name>
C: <domain:name>example.net</domain:name>
C: <domain:name>example.org</domain:name>
C: </domain:check>
C: </check>
C: <extension>
C: <fee:check
C: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:domain>example.com</fee:domain>
C: <fee:currency>USD</fee:currency>
C: <fee:action phase="sunrise">create</fee:action>
C: <fee:period unit="y">1</fee:period>
C: </fee:check>
C: <fee:check
C: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:domain>example.net</fee:domain>
C: <fee:currency>EUR</fee:currency>
C: <fee:action phase="claims" subphase="landrush">
C: create</fee:action>
C: <fee:period unit="y">2</fee:period>
C: </fee:check>
C: <fee:check
C: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:domain>example.org</fee:domain>
C: <fee:currency>EUR</fee:currency>
C: <fee:action>transfer</fee:action>
C: <fee:period unit="y">2</fee:period>
C: </fee:check>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C: </epp>
If the server supports the Registry Grace Period Mapping When the server receives a <check> command that includes the
[RFC3915], then the server MUST also support the "restore" value. extension elements described above, its response MUST contain an
The <fee:action> element MAY have an OPTIONAL "phase" attribute <extension> element, which MUST contain a child <fee:chkData> element
specifying a launch phase as described in for each <fee:check> element contained in the command. The <fee:
[draft-tan-epp-launchphase]. The <fee:action> element may also chkData> MUST contain the following child elements:
contain an OPTIONAL "subphase" attribute identifying the custom or
sub-phase as described in [draft-tan-epp-launchphase]. o A <domain:name> element that contains a domain name which matches
the name in the corresponding <fee:check> element.
o A <fee:currency> element that contains same currency code that
appeared in the corresponding <fee:check> element.
o A <fee:action> element that contains same action that appeared in
the corresponding <fee:check> element. This element MAY have the
OPTIONAL "phase" and "subphase" elements, which MUST match the
same attributes in the corresponding <fee:check> element.
o A <fee:period> element that contains same unit that appeared in
the corresponding <fee:check> element.
o A <fee:fee> element that contains the fee associated with the
specified transaction.
Example <check> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <domain:chkData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:cd>
S: <domain:name avail="1">example.com</domain:name>
S: </domain:cd>
S: <domain:cd>
S: <domain:name avail="0">example.net</domain:name>
S: <domain:reason>In use</domain:reason>
S: </domain:cd>
S: <domain:cd>
S: <domain:name avail="0">example.org</domain:name>
S: <domain:reason>In use</domain:reason>
S: </domain:cd>
S: </domain:chkData>
S: </resData>
S: <extension>
S: <fee:chkData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:domain>example.com</fee:domain>
S: <fee:currency>USD</fee:currency>
S: <fee:action phase="sunrise">create</fee:action>
S: <fee:period unit="y">1</fee:period>
S: <fee:fee>10.00</fee:fee>
S: </fee:chkData>
S: <fee:chkData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:domain>example.net</fee:domain>
S: <fee:currency>EUR</fee:currency>
S: <fee:action phase="claims" subphase="landrush">
S: create</fee:action>
S: <fee:period unit="y">2</fee:period>
S: <fee:fee>5.00</fee:fee>
S: </fee:chkData>
S: <fee:chkData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:domain>example.org</fee:domain>
S: <fee:currency>EUR</fee:currency>
S: <fee:action>transfer</fee:action>
S: <fee:period unit="y">2</fee:period>
S: <fee:fee>2.50</fee:fee>
S: </fee:chkData>
S: </extension>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S: </epp>
4.1.2. EPP <info> Command
This extension defines additional elements for the EPP <info>
command.
The command frame MAY contain an <extension> element which contains a
<fee:info> element with the following child elements:
o A <fee:currency> element that contains the currency the fee is
charged in.
o A <fee:action> element identifying the command.
o A <fee:period> element that contains the number of units to be o A <fee:period> element that contains the number of units to be
added to the registration period of the domain object. added to the registration period of the domain object.
Example <info> command: Example <info> 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: <info> C: <info>
C: <domain:info C: <domain:info
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 hosts="all">example.com</domain:name> C: <domain:name hosts="all">example.com</domain:name>
C: </domain:info> C: </domain:info>
C: </info> C: </info>
C: <extension> C: <extension>
C: <fee:info xmlns:fee="urn:ietf:params:xml:ns:fee-0.3"> C: <fee:info xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:action phase="sunrise">create</fee:action> C: <fee:action phase="sunrise">create</fee:action>
C: <fee:period unit="y">1</fee:period> C: <fee:period unit="y">1</fee:period>
C: </fee:info> C: </fee:info>
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 an <info> command that includes the When the server receives an <info> command that includes the
skipping to change at page 6, line 5 skipping to change at page 10, line 5
o A <fee:fee> element that contains the fee associated with the o A <fee:fee> element that contains the fee associated with the
specified transaction. specified transaction.
If the domain name requested in the command is invalid, sponsored by If the domain name requested in the command is invalid, sponsored by
another client, or otherwise ineligible for registration, the server another client, or otherwise ineligible for registration, the server
MAY choose to omit the <fee:infData> element and return an error MAY choose to omit the <fee:infData> element and return an error
instead. instead.
Example <info> response: Example <info> 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:infData S: <domain:infData
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:roid>EXAMPLE1-REP</domain:roid> S: <domain:roid>EXAMPLE1-REP</domain:roid>
S: <domain:status s="ok"/> S: <domain:status s="ok" />
S: <domain:registrant>jd1234</domain:registrant> S: <domain:registrant>jd1234</domain:registrant>
S: <domain:contact type="admin">sh8013</domain:contact> S: <domain:contact type="admin">sh8013</domain:contact>
S: <domain:contact type="tech">sh8013</domain:contact> S: <domain:contact type="tech">sh8013</domain:contact>
S: <domain:ns> S: <domain:ns>
S: <domain:hostObj>ns1.example.com</domain:hostObj> S: <domain:hostObj>ns1.example.com</domain:hostObj>
S: <domain:hostObj>ns1.example.net</domain:hostObj> S: <domain:hostObj>ns1.example.net</domain:hostObj>
S: </domain:ns> S: </domain:ns>
S: <domain:host>ns1.example.com</domain:host> S: <domain:host>ns1.example.com</domain:host>
S: <domain:host>ns2.example.com</domain:host> S: <domain:host>ns2.example.com</domain:host>
S: <domain:clID>ClientX</domain:clID> S: <domain:clID>ClientX</domain:clID>
skipping to change at page 6, line 39 skipping to change at page 10, line 39
S: <domain:upID>ClientX</domain:upID> S: <domain:upID>ClientX</domain:upID>
S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate> S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate> S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate> S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
S: <domain:authInfo> S: <domain:authInfo>
S: <domain:pw>2fooBAR</domain:pw> S: <domain:pw>2fooBAR</domain:pw>
S: </domain:authInfo> S: </domain:authInfo>
S: </domain:infData> S: </domain:infData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:infData xmlns:fee="urn:ietf:params:xml:ns:fee-0.3"> S: <fee:infData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:action phase="sunrise">create</fee:action> S: <fee:action phase="sunrise">create</fee:action>
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee>10.00</fee:fee> S: <fee:fee>10.00</fee:fee>
S: </fee:infData> S: </fee:infData>
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>
S: </epp> S: </epp>
Example <info> response where the domain name is not registered: Example <info> response where the domain name is not registered:
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="2303"> S: <result code="2303">
S: <msg>Object does not exist.</msg> S: <msg>Object does not exist.</msg>
S: </result> S: </result>
S: <extension> S: <extension>
S: <fee:infData xmlns:fee="urn:ietf:params:xml:ns:fee-0.3"> S: <fee:infData
S: <fee:currency>USD</fee:currency> S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:action phase="sunrise">create</fee:action> S: <fee:currency>USD</fee:currency>
S: <fee:period unit="y">1</fee:period> S: <fee:action phase="sunrise">create</fee:action>
S: <fee:fee>10.00</fee:fee> S: <fee:period unit="y">1</fee:period>
S: </fee:infData> S: <fee:fee>10.00</fee:fee>
S: </fee:infData>
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>
S: </epp> S: </epp>
2.1.2. EPP Transfer Query Command 4.1.3. 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 authorised 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 that contains a <fee:fee> element containing a <fee:trnData> element that contains a <fee:fee> element containing
the fee associated with this command. If no <fee:trnData> element is the fee associated with this command. If no <fee:trnData> element is
included in the response, then no fee has been assessed by the server included in the response, then no fee has been assessed by the server
for this transaction. for this transaction.
Example <transfer> query response: Example <transfer> query 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="1001"> S: <result code="1001">
S: <msg>Command completed successfully; action pending</msg> S: <msg>Command completed successfully; action pending</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:trnData S: <domain:trnData
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: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.3"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:currency>USD</fee:currency>
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>
S: </epp> S: </epp>
2.2. EPP Transform Commands 4.2. EPP Transform Commands
2.2.1. EPP <create> Command 4.2.1. EPP <create> Command
This extension does not add any elements to the EPP <create> command, This extension adds elements to both the EPP <create> command and
but does include elements in the response, when the extension has response, when the extension has been selected during a <login>
been selected during a <login> command. command.
When submitting a <create> command to the server, the client MAY
include in the <extension> element a <fee:create> element which
includes the following child elements:
o A <fee:currency> element containing the currency of the fee that
the command will result in.
o A <fee:fee> element that contains the fee associated with the
command.
Depending on server policy, the server MAY choose to accept or refuse
the command depending on whether the currency and fee provided by the
client agrees with the server's own calculation of the fee. If the
server chooses to refuse the command due to an incorrect fee, it MUST
respond with a 2004 "Parameter value range error".
When the <create> command has been processed successfully, and the When the <create> command has been processed successfully, and the
client selected the extension when it logged in, the server MAY client selected the extension when it logged in, the server MAY
include in the <extension> section of the EPP response a <fee: include in the <extension> section of the EPP response a <fee:
creData> element that contains a <fee:fee> element containing the fee creData> element that contains the following child elements:
associated with this command. If no <fee:creData> element is
included in the response, then no fee has been assessed by the server o A <fee:currency> element containing the currency of the fee.
for this transaction.
o A <fee:fee> element that contains the fee.
If no <fee:creData> element is included in the response, then no fee
has been assessed by the server for this transaction.
Example <create> command:
C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <create>
C: <domain:create
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name>
C: <domain:period unit="y">2</domain:period>
C: <domain:ns>
C: <domain:hostObj>ns1.example.net</domain:hostObj>
C: <domain:hostObj>ns2.example.net</domain:hostObj>
C: </domain:ns>
C: <domain:registrant>jd1234</domain:registrant>
C: <domain:contact type="admin">sh8013</domain:contact>
C: <domain:contact type="tech">sh8013</domain:contact>
C: <domain:authInfo>
C: <domain:pw>2fooBAR</domain:pw>
C: </domain:authInfo>
C: </domain:create>
C: </create>
C: <extension>
C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee>
C: </fee:create>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
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"?>
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: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.3"> S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:currency>USD</fee:currency>
S: <fee:fee>5.00</fee:fee> S: <fee:fee>5.00</fee:fee>
S: </fee:creData> S: </fee:creData>
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>
2.2.2. EPP <delete> Command 4.2.2. EPP <delete> Command
This extension does not add any elements to the EPP <delete> command, This extension does not add any elements to the EPP <delete> command,
but does include elements in the response, when the extension has but does include elements in the response, when the extension has
been selected during a <login> command. been selected during the <login> command.
When the <delete> command has been processed successfully, and the When the <delete> command has been processed successfully, and the
client selected the extension when it logged in, the server MAY client selected the extension when it logged in, the server MAY
include in the <extension> section of the EPP response a <fee: include in the <extension> section of the EPP response a <fee:
delData> element that contains a <fee:credit> element containing any delData> element that contains the following child elements:
credit associated with the deletion of the domain. If no <fee:
delData> element is included in the response, then no credit has been o A <fee:currency> element containing the currency of the credit.
assessed by the server for this transaction.
o A <fee:credit> element that contains the credit associated with
the deletion of the domain.
If no <fee:delData> element is included in the response, then no
credit has been assessed by the server for this transaction.
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 xmlns:fee="urn:ietf:params:xml:ns:fee-0.3"> S: <fee:delData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:currency>USD</fee:currency>
S: <fee:credit>5.00</fee:credit> S: <fee:credit>5.00</fee:credit>
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>
S: </epp> S: </epp>
2.2.3. EPP <renew> Command 4.2.3. EPP <renew> Command
This extension does not add any elements to the EPP <renew> command, This extension adds elements to both the EPP <renew> command and
but does include elements in the response, when the extension has response, when the extension has been selected during a <login>
been selected during a <login> command. command.
When submitting a <renew> command to the server, the client MAY
include in the <extension> element a <fee:renew> element which
includes the following child elements:
o A <fee:currency> element containing the currency of the fee that
the command will result in.
o A <fee:fee> element that contains the fee associated with the
command.
Depending on server policy, the server MAY choose to accept or refuse
the command depending on whether the currency and fee provided by the
client agrees with the server's own calculation of the fee. If the
server chooses to refuse the command due to an incorrect fee, it MUST
respond with a 2004 "Parameter value range error".
When the <renew> command has been processed successfully, and the When the <renew> command has been processed successfully, and the
client selected the extension when it logged in, the server MAY client selected the extension when it logged in, the server MAY
include in the <extension> section of the EPP response a <fee: include in the <extension> section of the EPP response a <fee:
renData> element that contains a <fee:fee> element containing the fee
associated with this command. If no <fee:renData> element is renData> element that contains the following child elements:
included in the response, then no fee has been assessed by the server
for this transaction. o A <fee:currency> element containing the currency of the fee.
o A <fee:fee> element that contains the fee.
If no <fee:renData> element is included in the response, then no fee
has been assessed by the server for this transaction.
Example <renew> command:
C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <renew>
C: <domain:renew
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name>
C: <domain:curExpDate>2000-04-03</domain:curExpDate>
C: <domain:period unit="y">5</domain:period>
C: </domain:renew>
C: </renew>
C: <extension>
C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee>
C: </fee:create>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
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"?>
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: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.3"> S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:currency>USD</fee:currency>
S: <fee:fee>5.00</fee:fee> S: <fee:fee>5.00</fee:fee>
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>
S: </trID> S: </trID>
S: </response> S: </response>
S: </epp> S: </epp>
2.2.4. EPP <transfer> Command 4.2.4. EPP <transfer> Command
This extension does not add any elements to the EPP <transfer> This extension adds elements to both the EPP <transfer> command and
command, but does include elements in the response, when the response, when the value of the "op" attribute of the <transfer>
extension has been selected during a <login> command. command element is "request", and the extension has been selected
during the <login> command.
When submitting a <transfer> command to the server, the client MAY
include in the <extension> element a <fee:transfer> element which
includes the following child elements:
o A <fee:currency> element containing the currency of the fee that
the command will result in.
o A <fee:fee> element that contains the fee associated with the
command.
Depending on server policy, the server MAY choose to accept or refuse
the command depending on whether the currency and fee provided by the
client agrees with the server's own calculation of the fee. If the
server chooses to refuse the command due to an incorrect fee, it MUST
respond with a 2004 "Parameter value range error".
When the <transfer> command has been processed successfully, and the When the <transfer> command has been processed successfully, and the
client selected the extension when it logged in, and if the "op" client selected the extension when it logged in, the server MAY
attribute of the <transfer> element of the request was "request", the include in the <extension> section of the EPP response a <fee:
server MAY include in the <extension> section of the EPP response a trnData> element that contains the following child elements:
<fee:trnData> element that contains a <fee:fee> element containing
the fee associated with this command. If no <fee:trnData> element is o A <fee:currency> element containing the currency of the fee.
included in the response, then no fee has been assessed by the server
for this transaction. o A <fee:fee> element that contains the fee.
If no <fee:transfData> element is included in the response, then no
fee has been assessed by the server for this transaction.
Example <transfer> command:
C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <transfer op="request">
C: <domain:transfer
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name>
C: <domain:period unit="y">1</domain:period>
C: <domain:authInfo>
C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw>
C: </domain:authInfo>
C: </domain:transfer>
C: </transfer>
C: <extension>
C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee>
C: </fee:create>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
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"?>
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="1001"> S: <result code="1001">
S: <msg>Command completed successfully; action pending</msg> S: <msg>Command completed successfully; action pending</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:trnData S: <domain:trnData
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: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.3"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
S: <fee:currency>USD</fee:currency>
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>
S: </epp> S: </epp>
2.2.5. EPP <update> Command 4.2.5. EPP <update> Command
This extension does not add any elements to the EPP <update> command, This extension adds elements to both the EPP <update> command and
but does include elements in the response, when the extension has response, when the extension has been selected during a <login> has
been selected during a <login> command. been selected during the <login> command.
When submitting a <update> command to the server, the client MAY
include in the <extension> element a <fee:update> element which
includes the following child elements:
o A <fee:currency> element containing the currency of the fee that
the command will result in.
o A <fee:fee> element that contains the fee associated with the
command.
Depending on server policy, the server MAY choose to accept or refuse
the command depending on whether the currency and fee provided by the
client agrees with the server's own calculation of the fee. If the
server chooses to refuse the command due to an incorrect fee, it MUST
respond with a 2004 "Parameter value range error".
When the <update> command has been processed successfully, and the When the <update> command has been processed successfully, and the
client selected the extension when it logged in, the server MAY client selected the extension when it logged in, the server MAY
include in the <extension> section of the EPP response a <fee: include in the <extension> section of the EPP response a <fee:upData>
updData> element that contains a <fee:fee> element containing any fee element that contains the following child elements:
associated with this command. If no <fee:updData> element is
included in the response, then no fee has been assessed by the server o A <fee:currency> element containing the currency of the fee.
for this transaction.
o A <fee:fee> element that contains the fee.
If no <fee:upData> element is included in the response, then no fee
has been assessed by the server for this transaction.
Example <update> command:
C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <update>
C: <domain:update
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name>
C: <domain:chg>
C: <domain:registrant>sh8013</domain:registrant>
C: </domain:chg>
C: </domain:update>
C: </update>
C: <extension>
C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee>
C: </fee:create>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
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.3"> S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.4">
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>
2.3. Formal Syntax 4.3. Formal Syntax
An EPP object mapping is specified in XML Schema notation. The An EPP object mapping is specified in XML Schema notation. The
formal syntax presented here is a complete schema representation of formal syntax presented here is a complete schema representation of
the object mapping suitable for automated validation of EPP XML the object mapping suitable for automated validation of EPP XML
instances. instances.
Copyright (c) 2013 IETF Trust and the persons identified as authors Copyright (c) 2013 IETF Trust and the persons identified as authors
of the code. All rights reserved. of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
skipping to change at page 14, line 16 skipping to change at page 22, line 17
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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.3" xmlns:fee="urn:ietf:params:xml:ns:fee-0.4"
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.3" targetNamespace="urn:ietf:params:xml:ns:fee-0.4"
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>Extensible Provisioning Protocol <documentation>Extensible Provisioning Protocol
v1.0 domain name extension schema for v1.0 domain name extension schema for
fee information.</documentation> fee information.</documentation>
</annotation> </annotation>
<!-- <!--
Child elements found in EPP commands and responses Child elements found in EPP commands and responses
--> -->
<element name="check" type="fee:checkType" />
<element name="chkData" type="fee:chkDataType" />
<element name="info" type="fee:infoType" /> <element name="info" type="fee:infoType" />
<element name="infData" type="fee:infDataType" /> <element name="infData" type="fee:infDataType" />
<element name="creData" type="fee:transformDataType" /> <element name="create" type="fee:transformCommandType" />
<element name="renData" type="fee:transformDataType" /> <element name="creData" type="fee:transformResultType" />
<element name="trnData" type="fee:transformDataType" /> <element name="renew" type="fee:transformCommandType" />
<element name="updData" type="fee:transformDataType" /> <element name="renData" type="fee:transformResultType" />
<element name="transfer" type="fee:transformCommandType" />
<element name="trnData" type="fee:transformResultType" />
<element name="update" type="fee:transformCommandType" />
<element name="updData" type="fee:transformResultType" />
<element name="delData" type="fee:deleteDataType" /> <element name="delData" type="fee:deleteDataType" />
<!-- <!--
client <check> command
-->
<complexType name="checkType">
<sequence>
<element name="domain" type="eppcom:labelType" />
<element name="currency" type="fee:currencyType" />
<element name="action" type="fee:actionType" />
<element name="period" type="domain:periodType" />
</sequence>
</complexType>
<!--
server <check> result
-->
<complexType name="chkDataType">
<sequence>
<element name="domain" type="eppcom:labelType" />
<element name="currency" type="fee:currencyType" />
<element name="action" type="fee:actionType" />
<element name="period" type="domain:periodType" />
<element name="fee" type="fee:feeType" />
</sequence>
</complexType>
<!--
client <info> command client <info> command
--> -->
<complexType name="infoType"> <complexType name="infoType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" /> <element name="currency" type="fee:currencyType" />
<element name="action" type="fee:actionType" /> <element name="action" type="fee:actionType" />
<element name="period" type="domain:periodType" /> <element name="period" type="domain:periodType" />
</sequence> </sequence>
</complexType> </complexType>
<!-- <!--
server <info> result server <info> result
--> -->
<complexType name="infDataType"> <complexType name="infDataType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" /> <element name="currency" type="fee:currencyType" />
<element name="action" type="fee:actionType" /> <element name="action" type="fee:actionType" />
<element name="period" type="domain:periodType" /> <element name="period" type="domain:periodType" />
<element name="fee" type="fee:feeType" /> <element name="fee" type="fee:feeType" />
</sequence> </sequence>
</complexType> </complexType>
<!-- <!--
general transform (create, renew, update, transfer) command
-->
<complexType name="transformCommandType">
<sequence>
<element name="currency" type="fee:currencyType" />
<element name="fee" type="fee:feeType" />
</sequence>
</complexType>
<!--
general transform (create, renew, update, transfer) result general transform (create, renew, update, transfer) result
--> -->
<complexType name="transformDataType"> <complexType name="transformResultType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" />
<element name="fee" type="fee:feeType" /> <element name="fee" type="fee:feeType" />
</sequence> </sequence>
</complexType> </complexType>
<!-- <!--
delete result delete result
--> -->
<complexType name="deleteDataType"> <complexType name="deleteDataType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" />
<element name="credit" type="fee:feeType" /> <element name="credit" type="fee:feeType" />
</sequence> </sequence>
</complexType> </complexType>
<!-- <!--
common types common types
--> -->
<simpleType name="currencyType"> <simpleType name="currencyType">
<restriction base="string"> <restriction base="string">
<pattern value="[A-Z]{3}" /> <pattern value="[A-Z]{3}" />
skipping to change at page 16, line 4 skipping to change at page 24, line 48
</simpleType> </simpleType>
<complexType name="actionType"> <complexType name="actionType">
<simpleContent> <simpleContent>
<extension base="fee:actionTypeValue"> <extension base="fee:actionTypeValue">
<attribute name="phase" type="token" /> <attribute name="phase" type="token" />
<attribute name="subphase" type="token" /> <attribute name="subphase" type="token" />
</extension> </extension>
</simpleContent> </simpleContent>
</complexType> </complexType>
<simpleType name="actionTypeValue"> <simpleType name="actionTypeValue">
<restriction base="token"> <restriction base="token">
<minLength value="3"/> <minLength value="3"/>
<maxLength value="16"/> <maxLength value="16"/>
</restriction> </restriction>
</simpleType> </simpleType>
<simpleType name="feeType"> <simpleType name="feeType">
<restriction base="decimal" /> <restriction base="decimal" />
</simpleType> </simpleType>
</schema> </schema>
END END
3. Security Considerations 5. Security Considerations
The mapping extensions described in this document do not provide any The mapping extensions described in this document do not provide any
security services beyond those described by EPP [RFC5730], the EPP security services beyond those described by EPP [RFC5730], the EPP
domain name mapping [RFC5731], and protocol layers used by EPP. The domain name mapping [RFC5731], and protocol layers used by EPP. The
security considerations described in these other specifications apply security considerations described in these other specifications apply
to this specification as well. to this specification as well.
4. IANA Considerations 6. IANA Considerations
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]. Two URI conforming to a registry mechanism described in [RFC3688]. Two URI
assignments were requested and have been registered by the IANA. assignments were requested and have been registered by the IANA.
Registration request for the digital signature namespace: Registration request for the digital signature namespace:
URI: urn:ietf:params:xml:ns:fee-0.3 URI: urn:ietf:params:xml:ns:fee-0.4
Registrant Contact: See the "Author's Address" section of this Registrant Contact: See the "Author's Address" section of this
document. document.
XML: None. Namespace URIs do not represent an XML specification. XML: None. Namespace URIs do not represent an XML specification.
Registration request for the EPP fee XML schema: Registration request for the EPP fee XML schema:
URI: urn:ietf:params:xml:ns:fee-0.3 URI: urn:ietf:params:xml:ns:fee-0.4
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.
5. Acknowledgements 7. Acknowledgements
The author wishes to thank James Gould of Verisign, Luis Munoz of The author wishes to thank the following persons for their feedback
ISC, and Michael Young of Architelos for their feedback and and suggestions:
suggestions.
6. Change History o James Gould of Verisign
6.1. Change from 0.1 to 0.2 o Luis Munoz of ISC
o Michael Young of Architelos
o Ben Levac and Jeff Eckhaus of Demand Media
8. Change History
8.1. Change from 0.1 to 0.2
1. Added note about the use of the "XXX" code for non-currency 1. Added note about the use of the "XXX" code for non-currency
transactions. transactions.
2. Added phase attribute to the <fee:action> element, and normative 2. Added phase attribute to the <fee:action> element, and normative
reference to [draft-tan-epp-launchphase]. reference to [draft-tan-epp-launchphase].
3. Added description of extension to transform and transfer query 3. Added description of extension to transform and transfer query
commands. commands.
4. Added Acknowledgements and Change History sections. 4. Added Acknowledgements and Change History sections.
6.2. Change from 0.2 to 0.3 8.2. Change from 0.2 to 0.3
1. Added the subphase attribute to the <fee:action> element. 1. Added the subphase attribute to the <fee:action> element.
2. Removed the enumeration for the <fee:action> element so any token 2. Removed the enumeration for the <fee:action> element so any token
may be used. may be used.
3. Moved the fee lookup command from <check> to <info>. 3. Moved the fee lookup command from <check> to <info>.
4. Added an extension to the <delete> command to return credit 4. Added an extension to the <delete> command to return credit
information. information.
5. Changed MUSTs to MAYs so that the response extension elements can 5. Changed MUSTs to MAYs so that the response extension elements can
be omitted where no fee is applicable. be omitted where no fee is applicable.
6. Update of introductory text. 6. Update of introductory text.
7. Normative References 8.3. Change from 0.3 to 0.4
1. Restore the <check> command extension; either <check> or <info>
can be used.
2. added extension elements for <create>, <renew>, <transfer> and
<update> so that the server can reject the command if the fee is
incorrect.
9. Normative References
[ISO4217] International Organization for Standardization, "ISO 4217: [ISO4217] International Organization for Standardization, "ISO 4217:
2008, Codes for the representation of currencies and 2008, Codes for the representation of currencies and
funds", 2008. funds", 2008.
[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, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004. January 2004.
 End of changes. 82 change blocks. 
149 lines changed or deleted 566 lines changed or added

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